Galera,
Por favor, uma pequena ajuda. Eu preciso ler 5 números, testar e imprimir o Maior e o Menor e também quais são Pares e Ímpares.
Eu escrevi algumas coisas, e peguei algumas prontas de outros modelos (encontrados aqui no GUJ mesmo), mas tem provavelmente algumas imcompatibilidades e meios de se fazer q estão em conflito. Podem me ajudar!?
[code]public class Numeros
{
public static void main (String[] args)
{
int n;
String string;
System.out.print ("Entre com os valores: ");
string = SavitchIn.readDouble ();
n=Integer.parseInt(string);
int array[] = new int[n];
int i, m, maior=-1000000, menor=1000000;
for (i=0; i<n; i++) {
m=i+1;
string=JOptionPane.showInputDialog("Digite o "+m+"o. número:");
array[i]=Integer.parseInt(string);
soma+=array[i];
if (array[i]>maior) {
maior=array[i];
}
if (array[i]<menor) {
menor=array[i];
}
}
for (i=0; i<n; i++){
if ( i % 2 == 0)
System.out.println(i+ "Eh Par");
else
System.out.println(i+ "Eh Impar");
}
System.out.print ("O maior dos números é "+maior+".");
System.out.print ( "O menor dos números é "+menor+".");[/code]
Fico muito agradecido por quem me ajudar a consertar o código!
[code]public class Exemplo {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] numeros = new int[5];
System.out.println("Digite o 1o numero:");
numeros[0] = input.nextInt();
System.out.println("Digite o 2o numero:");
numeros[1] = input.nextInt();
System.out.println("Digite o 3o numero:");
numeros[2] = input.nextInt();
System.out.println("Digite o 4o numero:");
numeros[3] = input.nextInt();
System.out.println("Digite o 5o numero:");
numeros[4] = input.nextInt();
//Calcular par ou ímpar
for (int i = 0; i < numeros.length; i++) {
if (numeros[i] % 2 == 0) {
System.out.println(numeros[i] + " é par!");
}
else {
System.out.println(numeros[i] + " é ímpar!");
}
}
System.out.println();
//Maior
if (numeros[0] - numeros[1] >= 0 && numeros[0] - numeros[2] >= 0 && numeros[0] - numeros[3] >= 0 && numeros[0] - numeros[4] >= 0) {
System.out.println(numeros[0] + "é o maior!");
}
else if (numeros[1] - numeros[0] >= 0 && numeros[1] - numeros[2] >= 0 && numeros[1] - numeros[3] >= 0 && numeros[1] - numeros[4] >= 0) {
System.out.println(numeros[1] + "é o maior!");
}
else if (numeros[2] - numeros[0] >= 0 && numeros[2] - numeros[1] >= 0 && numeros[2] - numeros[3] >= 0 && numeros[2] - numeros[4] >= 0) {
System.out.println(numeros[2] + "é o maior!");
}
else if (numeros[3] - numeros[0] >= 0 && numeros[3] - numeros[2] >= 0 && numeros[3] - numeros[2] >= 0 && numeros[3] - numeros[4] >= 0) {
System.out.println(numeros[3] + "é o maior!");
}
else if (numeros[4] - numeros[0] >= 0 && numeros[4] - numeros[1] >= 0 && numeros[4] - numeros[2] >= 0 && numeros[4] - numeros[3] >= 0) {
System.out.println(numeros[4] + "é o maior!");
}
System.out.println();
//Menor
if (numeros[0] - numeros[1] < 0 && numeros[0] - numeros[2] < 0 && numeros[0] - numeros[3] < 0 && numeros[0] - numeros[4] < 0) {
System.out.println(numeros[0] + " é o maior!");
}
else if (numeros[1] - numeros[0] < 0 && numeros[1] - numeros[2] < 0 && numeros[1] - numeros[3] < 0 && numeros[1] - numeros[4] < 0) {
System.out.println(numeros[1] + " é o maior!");
}
else if (numeros[2] - numeros[0] < 0 && numeros[2] - numeros[1] < 0 && numeros[2] - numeros[3] < 0 && numeros[2] - numeros[4] < 0) {
System.out.println(numeros[2] + " é o maior!");
}
else if (numeros[3] - numeros[0] < 0 && numeros[3] - numeros[2] < 0 && numeros[3] - numeros[2] < 0 && numeros[3] - numeros[4] < 0) {
System.out.println(numeros[3] + " é o maior!");
}
else if (numeros[4] - numeros[0] < 0 && numeros[4] - numeros[1] < 0 && numeros[4] - numeros[2] < 0 && numeros[4] - numeros[3] < 0) {
System.out.println(numeros[4] + " é o maior!");
}
}
}[/code]
numeros[0] - numeros[1] >= 0
Isso é uma "gambiarra" que dá certo! Se a sub do primeiro com o segundo for menor que 0…é pq o segundo é maior que o primeiro!
Uhuull…
Eu fiz com Scanner…faça do jeito que achar melhor!
Muito if e else.
É melhor verificar o maior assim:
int[] ns = {5,8,16,2,0};
int maior = ns[0];//Note se eu colocar "int maior = 0;" e todos os numeros do array forem menores que zero, o resultado de maior vai ser 0;
for(int i : ns)
if(i > maior)
maior = i;
System.out.println("O maior numero do array é:" + maior);
Acho que ficaria melhor usando laços e imprimir o resultado no final tudo junto.
[code]
import javax.swing.JOptionPane;
public class Main {
public static void main (String[] args) {
int maior = 0, menor = 0;
String pares = "Pares: ", impares = "Ímpares: ";
for(int i = 1; i <= 5; i++) {
int num = Integer.parseInt(JOptionPane.showInputDialog(null,"Entre com o " + i + "o. número :"));
//Teste de maior e menor
if (i == 1) {
maior = num;
menor = num;
} else {
if (num > maior) {
maior = num;
} else if (num < menor) {
menor = num;
}
}
//Teste de par e ímpar
if (i%2 == 0) {
pares += " " + num;
} else {
impares += " " + num;
}
}
JOptionPane.showMessageDialog(null,"O maior dos números é " + maior);
JOptionPane.showMessageDialog(null,"O menor dos números é " + menor);
JOptionPane.showMessageDialog(null,pares + "\n" + impares);
}
}[/code]
claudneto, Mark_Ameba e NataliaOliveira!
Valeu mesmo por responderem!
Agora se eu quisesse indicar QUANTOS (a quantidade mesmo dentre os 5 números lidos) são pares e quantos são ímpares? Teria que inserir um contador dentro do FOR
[code] for (i=0; i<n; i++){
if ( i % 2 == 0)
int qtdPar = qtdPar++;
System.out.println(i+ “Eh Par”);
else
int qtdImp = qtdImp++;
System.out.println(i+ “Eh Impar”);
System.out.print (“A quantidade de numeros pares é “+qtdPar+”.”);
System.out.print (“A quantidade de numeros ímpares é “+qtdImp+”.”);[/code]
Tá certo isso!?
[quote=henriquelo]claudneto, Mark_Ameba e NataliaOliveira!
Valeu mesmo por responderem!
Agora se eu quisesse indicar QUANTOS (a quantidade mesmo dentre os 5 números lidos) são pares e quantos são ímpares? Teria que inserir um contador dentro do FOR
[code] for (i=0; i<n; i++){
if ( i % 2 == 0)
int qtdPar = qtdPar++;
System.out.println(i+ “Eh Par”);
else
int qtdImp = qtdImp++;
System.out.println(i+ “Eh Impar”);
System.out.print (“A quantidade de numeros pares é “+qtdPar+”.”);
System.out.print (“A quantidade de numeros ímpares é “+qtdImp+”.”);[/code]
Tá certo isso!?[/quote]
Coloque as variaveis de qtdPar e qtdImp fora do if, se não ele será criado toda hora que entrar na condição.
int qtdPar, qtdImp;
for (i=0; i<n; i++){
if ( i % 2 == 0){
qtdPar++;
System.out.println(i+ "Eh Par");
}else{ //Quando voce não coloca os colchetes só é executado a proxima linha de código pela condição
qtdImp++;
System.out.println(i+ "Eh Impar");
}}
System.out.print ("A quantidade de numeros pares é "+qtdPar+".");
System.out.print ("A quantidade de numeros ímpares é "+qtdImp+".");
É verdade brother…valeu mesmo! pela dica!!!
[]'s