PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.
Moderadores: Administradores, Moderadores
por m.offspring.r » Sábado Fev 23, 2008 15:29
Boas pessoal.
Tenho uma dúvida mesmo no fim de um exercício... Este exercício pede um numero ao utilizador e diz quantos dígitos tem esse numero.
Até aqui tudo bem, o que eu não estou a conseguir fazer é a contagem dos dígitos do numero... Abaixo deixo o código que tenho feito até agora:
- Código: Seleccionar todos
import java.util.*;
public class exercicio
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner (System.in);
//variaveis
int i, valor, soma;
System.out.print("\n");
//pede um valor ao utilizador e guarda-o
System.out.print("Digite um numero: ");
valor = keyboard.nextInt();
//cria um vector com o numero digitado
int[] vector = new int[valor];
//inicia o contador dos digitos
soma = 0;
//verifica a quantidade de digitos do numero
for(i=0; i<vector.length; i++)
{
//contar os digitos... E DAQUI QUE NAO PASSO!!
}
//mostra o resultado
System.out.print("\nO numero tem " + soma + " digito(s).\n\n");
}
}
Criei a variável
soma apara contar o numero de dígitos que o numero tinha...
Toda a ajuda era bem vinda... Era não, é bem vinda

Editado pela última vez por
m.offspring.r em Sábado Fev 23, 2008 18:56, num total de 1 vez.
-
m.offspring.r
- Aprendiz

-
- Mensagens: 21
- Registado: Sexta Fev 15, 2008 19:19
por Moebius » Sábado Fev 23, 2008 16:01
Alternativa completamente oposta.
Porque não colocar o valor lido em um String e depois utilizar o metodo length() dos tipos String?
Acer 7720G - Core 2 Duo T5250 - 2048 Mb RAM - 250 GB HD - 17" WXGA - nVidia Geforce 8400M GS 256 Mb
Shortly will be running on
Ubuntu Gnome, Firefox and Thunderbid
-
Moebius
- Membro de Prata

-
- Mensagens: 136
- Registado: Segunda Out 06, 2003 18:28
- Localização: Lisboa ou Madeira, conforme o mês do ano
-
por Moebius » Sábado Fev 23, 2008 16:03
Já agora:
- Código: Seleccionar todos
//cria um vector com o numero digitado
int[] vector = new int[valor];
Não estás a criar, primeiro um vector mas sim um array, e segundo, estás a inicializar o array com o tamanho igual ao tamanho digitado. Efectivamente não estás a preencher o array com valores, mas sim a definir apenas o tamanho máximo que esse array pode possuir.
Acer 7720G - Core 2 Duo T5250 - 2048 Mb RAM - 250 GB HD - 17" WXGA - nVidia Geforce 8400M GS 256 Mb
Shortly will be running on
Ubuntu Gnome, Firefox and Thunderbid
-
Moebius
- Membro de Prata

-
- Mensagens: 136
- Registado: Segunda Out 06, 2003 18:28
- Localização: Lisboa ou Madeira, conforme o mês do ano
-
por m.offspring.r » Sábado Fev 23, 2008 16:17
ja ando as aranhas com isto... nem pra tras, nem pra frente...
-
m.offspring.r
- Aprendiz

-
- Mensagens: 21
- Registado: Sexta Fev 15, 2008 19:19
por vamosAeles » Sábado Fev 23, 2008 17:35
dude, faz o que o Moebius disse:
valor = keyborad.nextInt();
numDigitos = String.valueOf(valor).lenght();
[[]]
-
vamosAeles
- Membro de Prata

-
- Mensagens: 206
- Registado: Quarta Jan 04, 2006 21:29
- Localização: Lisboa/Proença
por m.offspring.r » Sábado Fev 23, 2008 18:52
Ta feito.
Não é "numDigitos = String.valueOf(valor).lenght(); ", mas sim "numDigitos = String.valueOf(valor).length()"... o th é que estava trocado
Thanks pelas dicas.
-
m.offspring.r
- Aprendiz

-
- Mensagens: 21
- Registado: Sexta Fev 15, 2008 19:19
por alfatek » Sexta Fev 29, 2008 19:45
é uma alternativa, passar para String e contar assim.
mas muitas vezes este tipo de exercicios são usados em cadeiras de introdução à programação em Java e não deves usar String mas sim uma forma mais "artesanal"
Basicamente tens de usar ciclos, divisão por 10 e resto da divisão por 10 (%). Agora é pensar um bocadinho.... o que acontece quando fazes a divisão inteira por 10?
123 / 10 = 12
12 / 10 = 1
1 / 10 = 0
etc...
-
alfatek
- Administrador

-
- Mensagens: 3257
- Registado: Sábado Abr 06, 2002 18:28
- Localização: Coimbra
-
Voltar para Programação
Quem está ligado:
Utilizador a ver este Fórum: Nenhum utilizador registado e 1 visitante