while(cont<=4){a=javax.swing.JOptionPane.showInputDialog("Digite 4 numeros : ");num=Integer.parseInt(a);maior=0;aux=0;if(num>maior){num=aux;aux=maior;}cont++;}System.out.println("O maior numero lido e: "+maior);System.exit(0);}
Você só está atribuindo um valor à variável maior nessa linha:
maior = 0;
Depois não atribui em nenhum lugar. Por isso dá sempre zero.
Ah, por favor, use a tag CODE. Nos seus códigos.
O
OutPJ
O Problema é que maior não recebe nenhum valor diferente de zero
publicclassoi{publicstaticvoidmain(Stringargs[]){Stringa;intnum;intcont;intmaior=0;cont=1;while(cont<=4){a=javax.swing.JOptionPane.showInputDialog("Digite 4 numeros : ");num=Integer.parseInt(a);if(num>maior){maior=num;}cont++;}System.out.println("O maior numero lido e: "+maior);System.exit(0);}}
tenta assim o aux nao é necessario
G
gollunPJ
E se pedisse com dois numeros maiores?
Como faria?
baseando-se no codigo acima.
grato.
O
OutPJ
Faz dois if{} aninhados testando o maior e o segundo maior numero armazenado
J
JavaDropsPJ
O aux você usa quando for ordenar uma sequência de números. Mas aí você tem que usar um array.
Para obter os n maiores números ordena os números em um array e pega o últimos n números (se você ordenou em ordem crescente).
Um exemplo de "ordenador":
classExemplo0804{publicstaticvoidmain(Stringargs[]){intN[]=newint[10];//cria um array com 10 elementosfor(inti=0;i<10;i++){// armazena os argumentos no arraySystem.out.println("Digite o numero "+(i+1));N[i]=Diversos.leNumeroInt(0,1000);if(N[i]==-1)// foi digitado um numero invalidoi--;// retorna o indice; }N=ordenaArrayInt(N);//ordena o arraySystem.out.println("Em ordem crescente: ");mostraArray(N);//mostra o array}publicstaticint[]ordenaArrayInt(intarr[]){intx,y,aux;for(x=0;x<arr.length;x++)for(y=0;y<arr.length;y++){if(arr[x]<arr[y]){aux=arr[y];arr[y]=arr[x];arr[x]=aux;}}returnarr;}publicstaticvoidmostraArray(intarr[]){for(inti=0;i<arr.length;i++)//mostrando o array ordenado{System.out.print(arr[i]+" ");}}}
fonte: Java 2 Ensino Didático - Sérgio Furgeri
obs.: estou apenas usando o exemplo e citando a fonte, não estou recomendando o livro.
J
JavaDropsPJ
observações:
dê preferência a usar length nos seus “for”, como em:
x<arr.length
Se você mudar o tamanho do array não precisa ficar se preocupando em alterar cada “for” para o novo tamanho.
Diferenças entre length e length():
length é uma variável que todo array tem indicando o número de elementos do array
length() é um método da classe String que retorna o tamanho da string