Este código mostra se os números inteiros digitados são par ou impar. Eu gostaria de fazê-lo para verificar a quantidade de números que eu quisesse. Ele não está funcionando como eu quero. Acho que o problema está no Array. Alguém pode me dar uma dica? Grato!
import java.util.Scanner;
public class ParImpar {
public static void main(String[] args){
int v[]= new int[10];
int i=0;
int n=0;
int c=0;
while(n!=-1){
Scanner ler = new Scanner(System.in);
n = ler.nextInt();
v[i]=n;
i++;
c++;
}
for(i=0; i<=c-2; i++){
if(v[i]%2==0){
System.out.println("PAR");
}
else{
System.out.println("IMPAR");
}
}
}
}
acredito que sua logica foi essa
public static void main(String[] args) {
Scanner ler = new Scanner(System.in);
int v[]= new int[10];
for(int i = 0; i < v.length ; i++) {
v[i] = ler.nextInt();
}
for(int i = 0 ; i < v.length ; i++){
if(v[i]%2==0){
System.out.println(v[i] + " é PAR");
}
else{
System.out.println(v[i] + " é IMPAR");
}
}
}
1 curtida
Vamos separar isso em duas partes.
Quando falamos em arrays ou vetores
int v[] = new int[10];
Estamos falando de uma estrutura com limite de tamanho (número de posições).
Isso é totalmente incoerente com “quantidade de números que quiser”. Afinal, se você precisa delimitar a quantidade de itens que um vetor poderá armazenar, nunca poderá ter a quantidade que quiser, certo?
Porém, há meios para deixar isso um pouco mais flexível, por exemplo
int repeticoes;
System.out.println("Quantos números devem ser lidos?");
repeticoes = Integer.parseInt(sc.nextLine());
Assim, você pode informar quantas vezes deseja repetir o processo de leitura dos números. Ah, como fica o vetor?
v[] = new int[repeticoes];
Não é a solução mais bonita, mas, vai funcionar.
Outra possibilidade é o uso de Vector ou mesmo de List, porém, isso implicaria em você já ter estudado estas estruturas. Se não estudou, não pule etapas, vá evoluindo devagar.
3 curtidas
Muito obrigado pela ajuda. Foi de grande ajuda, um abraço.