Eu quero implementar um programa que lê quatro valores inteiros e indique quantos são diferentes (1,2,3 ou 4), são pares e são ímpares. Do tipo : Valores ? 32 -3 32 234 Diferentes=3, Pares=3, Impares=1.
Sei que para calcular numeros pares e apenas fazer (num%2 = 0) mas estou com problemas em fazer esta condiçao para 4 valores e juntar no fim, e nao sei como definir uma condição para calcular os numeros diferentes.
Deixa eu ver se entendi: se você passou os números 32 -3 32 234, então ao meu ver são 3 pares, 1 ímpar e dois diferentes, correto? O 32 repete, então não seria contado. Ou seria uma vez só?
Esse jeito if (((v1 % 2) == 0 ) && ((v2 % 2) == 0) && ((v3 % 2) == 0) && ((v4 % 2) == 0)){ além de ser muito mais trabalhoso, vai te deixar maluco. Pode dar um pouquinho só de trabalho, mas eu jogaria esses números em um arrayList e faria as contas. Faria um loop, que contaria os pares, ímpares e diferentes.
Tipo
Array(índice)%2==0{
par
}else{
ímpar
}
e crie variáveis para contá-los.
Um abraço e boa sorte
Z
zalo
eu nao posso utilizar arrays, so posso utilizar if’s :? daí a condusao, e o 32 conta como um so daí ser 3 numeros diferentes, como e que posso juntar isto tudo no codigo que ja tenho feito?
imagina quantas possibilidades você terá comparando os 4 números de uma única vez. Pra mim, ficaria mais fácil algo assim então
if número1 % 2 == 0
contadorPares++
senão
contadorImpares++
Até o quarto número. Quanto às comparações de diferentes, acho que vai ter que ser na unha mesmo.
Boa sorte.
X
xandi_m5
Cara vc pode usar um array e colocar os 4 valores lá…
Faz um for de 4 ciclos (obviamente ;; ), nesse ciclo faz 1 if se é para ver se é par, e coloca apenas um else.
Como o if está no laço ele irá verifica se os 4 valores são par, se não for é ímpar. E faz 2 variáveis extra (qtdPar e qtdImpar), coloca a variavel qtdPar dentro do if somando 1 e qtdImpar colocar no else somando 1(Ai no final vc tem a quantidade).
Isso resolve o problema do código acima, quando eu pensar na lógica para a outra parte do problema eu falo…
Entendeu??
Qualquer duvida só falar…
Z
zalo
ja tenho a calcular numeros pares e impares, falta so calcular os numeros diferentes
Mais em fim, é só fazer usando a mesma logica, que vc uso para fazer a compração...(ou seja vai ter que comparar 1 por 1).
Ps: se prof. deve ter feito isso para vc aprender usar o IF, então nunca faça isso em um programa de verdade... BLZ
Eu faria assim:(Só a parte de comparação)
publicclassArrayB{publicstaticvoidmain(String[]args){int[]numero=newint[4];intqtdPar=0;intqtdImpar=0;Scannerin=newScanner(System.in);for(inti=0;i<4;i++){System.out.print("Valor ? ");numero[i]=in.nextInt();if((numero[i]%2)==0){// qtdPar=qtdPar+1;}else{qtdImpar=qtdImpar+1;}}System.out.println(qtdPar+" são pares.");System.out.println(qtdImpar+" são impares.");}}
lucas_guj
Eu não entendi muito bem, acho que posso te ajudar. Esses valores diferentes você quer dizer o que? A e o usuário tem que digitar cada valor por vez ou pode digitar os 4 valores de uma vez só? O número pode repetir e são somente inteiros?
Inicializei a variável diferentes com o valor 1, me baseando no exemplo que você deu, o que quer dizer que mesmo que todos números sejam iguais, vai dizer que há 1 número diferente.
Abraço!
fernandosavio
Fiz um exemplo usando for (que valeria para um vetor de qualquer tamanho) e um só com if, que vale só para vetores de tamanho 4…
Dei uma comentada, se não entender algo pergunte…
publicclassNumeros{staticint[]vetor={32,-3,32,234};publicstaticvoidmain(Stringargs[]){solucao1();solucao2();}publicstaticvoidsolucao1(){intpares=0,impares=0,diferentes=0;//percorre o vetor inteirofor(inti=0;i<vetor.length;i++){//testa se é par ou ímparif(vetor[i]%2==0){pares++;}else{impares++;}//testa se é igual a algum outro valor do vetorbooleanehDiferente=true;for(intj=i-1;j>=0;j--){//percorre o vetor para trás da posição i-1 até 0if(vetor[j]==vetor[i]){ehDiferente=false;}}if(ehDiferente){diferentes++;}}//Imprime o resultadoSystem.out.println("*** Método com FOR ***");System.out.println("Pares: "+pares);System.out.println("Ímpares: "+impares);System.out.println("Diferentes: "+diferentes);}publicstaticvoidsolucao2(){intpares=0,impares=0,diferentes=0;//Testa o primeiro valorif(vetor[0]%2==0){pares++;}else{impares++;}diferentes++;//O primeiro é obrigado a ser diferente//Testa o segundo valorif(vetor[1]%2==0){pares++;}else{impares++;}if(vetor[0]!=vetor[1]){diferentes++;}//Testa o terceiro valorif(vetor[2]%2==0){pares++;}else{impares++;}if(vetor[2]!=vetor[1]&&vetor[2]!=vetor[0]){diferentes++;}//Testa o quarto valorif(vetor[3]%2==0){pares++;}else{impares++;}if(vetor[3]!=vetor[2]&&vetor[3]!=vetor[1]&&vetor[3]!=vetor[0]){diferentes++;}//Imprime o resultadoSystem.out.println("\n*** Método com vários IF's ***");System.out.println("Pares: "+pares);System.out.println("Ímpares: "+impares);System.out.println("Diferentes: "+diferentes);}}
Z
zalo
Problema resolvido! Obrigado a todos os que ajudaram! valeu
Vingdel
Perfeito, zalo!
Por favor, edite o título do tópico adicionando [RESOLVIDO] ao início do título.