Ola pessoal estou precisando fazer uma algoritmo que imprima os n numeros impares em ordem inversa.Só que o codigo que eu fiz está imprimindo o proprio numero que eu digito o que a de errado com meu codigo, ou o que eu devo fazer para ele funcionar certo?Obrigado desde já !
publicstaticvoidmain(String[]args){// TODO Auto-generated method stubintn;intprimeiro;Scannertec=newScanner(System.in);System.out.println("digite um numero");n=tec.nextInt();primeiro=2*n-1;for(inti=primeiro;i>1;i--);System.out.println(n);}}
for(inti=primeiro; i > 1; i--); System.out.println(n);
edilson_x
Tenta isso :
intn; java.util.Scannertec=newjava.util.Scanner(System.in); System.out.println("digite um numero"); n=tec.nextInt(); for(inti=0; n > i; n--){if(n%2>0)System.out.println(n); }
M
manuel
Por um acaso ficaria assim?
for (int i = primeiro; i > 1; i++);
System.out.println(i);
edilson_x
Explicando :
intn; java.util.Scannertec=newjava.util.Scanner(System.in); System.out.println("digite um numero"); n=tec.nextInt(); for(inti=0; n > i; n--){ // o int i deve ser 0 para que imprima o 1, depois verifica se n é maior que iif(n%2>0)//aquichecaseorestodadivisãopor2é>0,queéverdadeiroparanumerosimparesSystem.out.println(n); // imprime o numero impar}
B
Bruno_Laturner
manuel:
Por um acaso ficaria assim?
for (int i = primeiro; i > 1; i++);
System.out.println(i);
Veja aquele ponto-e-vírgula escondido depois do for. Ele significa que essa é um comando vazio, e ele vai executar o programa vazio n vezes.
Veja a condição de parada do teu for, enquanto i for maior que 1, e você continua incrementando o valor de i. Das duas uma:
-O teu entraria em loop infinito se i for igual ou maior a 1¹.
-Ele só executaria for uma vez nos outros casos.
PS: ¹ - o loop não é infinito por que o i vai sofrer overflow e voltar para Integer.MIN