Ler um vetor A com 20 elementos. Construir dois vetores B e C, sendo
que nos vetor B e C serão armazenados o valores pares e ímpares de
A, respectivamente, como posso melhorar esse codigo? eu consegui fazer mas parece meio confuso. valeu!
public static void main(String[] args) {
Random r = new Random();
int pares = 0;
int impares = 0;
int[] vetorA = new int[10];
for (int i=0; i<vetorA.length; i++) {
vetorA[i] = r.nextInt(10);
if (vetorA[i] % 2 == 0) {
pares += 1;
}else if (vetorA[i] % 2 == 1){
impares += 1;
}
}
int[] vetorB = new int[pares];
int[] vetorC = new int[impares];
int par = 0;
int impar = 0;
for (int i=0; i<vetorA.length; i++) {
if (vetorA[i] % 2 == 0) {
vetorB[par] += vetorA[i];
par++;
}else if (vetorA[i] % 2 == 1){
vetorC[impar] += vetorA[i];
impar++;
}
}
System.out.println("Total nº par: "+pares);
System.out.println("Total nº impar: "+impares);
System.out.print("\nVetor A - ");
for (int i : vetorA) {
System.out.print(i);
}
System.out.print("\nVetor B - ");
for (int i : vetorB) {
System.out.print(i);
}
System.out.print("\nVetor C - ");
for (int i : vetorC) {
System.out.print(i);
}
}
}
1 curtida
Você pode usar ArrayLists ou precisam ser arrays simples?
Arrays simples ainda nao cheguei nas Lists 
o codigo funciona porem tive que tirar do loop for duas var para dar certo.
eu acabei trocando o numero de posicoes do vetorA pra testar e esqueci de mudar para 20 de novo, abstrai isso ai
@neal-smith tem alguma dica?
@IvanRafael.dev essa linha ai vc esta incrementando o valor não precisa fazer isso basta armazenar valor que vier segundo diz o enunciado
Assim,
vetorB[par] = vetorA[i];
A mesma coisa nessa linha
vetorC[impar] += vetorA[i];
Outra coisa nas linhas onde estiver isso aqui:
}else if (vetorA[i] % 2 == 1){
Muda pra isso aqui:
}else { // só basta isso
Exemplo completo:
//caso for par
if (vetorA[i] % 2 == 0) {
vetorB[par] = vetorA[i];
par++;
}else{ // se não for par com certeza vai ser impar
vetorC[impar] = vetorA[i];
impar++;
}
Consegui fazer pouca coisa:
import java.util.Random;
public class Main {
public static void main(String[] args) throws Exception {
Random r = new Random();
int pares = 0, impares = 0;
int[] vetorA = new int[10];
for (int i = 0; i < vetorA.length; i++) {
if ((vetorA[i] = r.nextInt(10)) % 2 == 0) {
pares++;
} else {
impares++;
}
}
int[] vetorB = new int[pares];
int[] vetorC = new int[impares];
int par = 0, impar = 0;
for (int n : vetorA) {
if (n % 2 == 0) {
vetorB[par++] = n;
} else {
vetorC[impar++] = n;
}
}
System.out.println("Total nº par: " + pares);
System.out.println("Total nº impar: " + impares);
System.out.print("\nVetor A - ");
for (int i : vetorA) {
System.out.print(i + " ");
}
System.out.print("\nVetor B - ");
for (int i : vetorB) {
System.out.print(i + " ");
}
System.out.print("\nVetor C - ");
for (int i : vetorC) {
System.out.print(i + " ");
}
}
}