import java.util.Scanner;
public class ParImpar{
public static void main( String[] args){
int[] parInpar={0,0,0,0,0,0,0,0,0,0};
int p=0;
int i=0;
int[] par={0,0,0,0,0,0,0,0,0,0};
int[] impar={0,0,0,0,0,0,0,0,0,0};
for( int n=0; n <= 9 ; ++n ){
Scanner kbd=new Scanner( System.in );
parInpar[n]=kbd.nextInt();
if(parInpar[n]==0)
break;
}
for( int n=0; n <= 9; ++n ){
if(parInpar[n]%2==0){
par[p]=parInpar[n];
p=p+1;
}else{
impar[i]=parInpar[n];
i=i+1;
}
}
System.out.println("Pares :"+java.util.Arrays.toString(par));
System.out.println("Impares :"+java.util.Arrays.toString(impar));
}
}
Duvidas com Array
10 Respostas
Não entendi qual é o seu problema. Não está certo já o programa?
quando eu testo o programa ele faz tudo certinho so com um pekeno problema
entro com 1 2 3 4 5 6 7 8 9 10
imprime
Par: [2 4 6 8 10 0 0 0 0 0]
Impar [1 3 5 7 9 0 0 0 0 0]
o que eu queria era
entro com 1 2 3 4 5 6 7 8 9 10
imprime
Par: [2 4 6 8 10]
Impar: [1 3 5 7 9]
Voce realmente precisa criar dois arrays?
pois eu estou a tentar fazer da maneira que sei :S foi assim que achei melhor para mim alguma ideia?
ou alguem me ajuda num algoritemo melhor?
Não vo fazer nenhum codigo para vc programar lol
mais oque você pode fazer é
Criar um array chamado vai listaNumeros
preenche ele ai cria um for (no for coloca o indice contanto assim i++ )
depois crie um outro for que percorra o vetor é pergunte se é par casa não seja par é impar
todo numero par é divisivel por 2…
ou seja (numero%2==0)
% = resto da divisão
HAVE FUN!
Você tem 2 opções:
- Usar um número especial, que você sabe que não foi inserido pelo usuário:
final int NULO = Integer.MIN_INTEGER;
int[] par={NULO,NULO,NULO,NULO,NULO,NULO,NULO,NULO,NULO,NULO,NULO,NULO};
int[] impar={NULO,NULO,NULO,NULO,NULO,NULO,NULO,NULO,NULO,NULO,NULO,NULO};
E na hora do for imprimir ignorar esse número:
System.out.print("Pares: ");
for (int numero : par) {
if (numero != NULO) {
System.out.println(numero);
}
}
- Não gerar os arrays, e só imprimir o resultado corretamente.
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class ParImpar
{
public static void main(String[] args)
{
List<Integer> listaDePares = new ArrayList<Integer>();
List<Integer> listaDeImpares = new ArrayList<Integer>();
Scanner in = new Scanner(System.in);
for (int i = 0; i < 10; i++)
{
int numero = Integer.parseInt(in.next());
if (numero % 2 == 0)
listaDePares.add(numero);
else
listaDeImpares.add(numero);
}
System.out.println(listaDePares);
System.out.println(listaDeImpares);
}
}
pois como devem repara isto e ex de escolinha :S ando a 3 horas de volta disto :S a ultima ideia é a melhor sim para não posso usar isso tem mesmo que ser com arrey :S
O seu problema é só com os 0s no final?
Vc tem dois contadores, um para cada array. Algo como
for(int n...){
if(condicao){
coisa[x] = lala[n]; x++;
}else{
outra[y] = lala[n]; y++;
}
}
Então, o que aconteceria se

se for so como exercicio de faculdade
public class ParImpar {
public static void main(String[] args) {
int[] entrada = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int[] par = new int[entrada.length];
int[] impar = new int[entrada.length];
int contP = 0;
int contI = 0;
for (int j = 0; j < entrada.length; j++) {
if (entrada[j] % 2 == 0) {
par[contP] = entrada[j];
contP++;
} else {
impar[contI] = entrada[j];
contI++;
}
}
System.out.println("Pares ");
for (int i = 0; i < par.length; i++) {
if (par[i] != 0)
System.out.print(" * " + par[i]+ " * ");
}
System.out.println("\n\nImpares ");
for (int i = 0; i < impar.length; i++) {
if (impar[i] != 0)
System.out.print(" * " + impar[i]+ " * ");
}
}
}