Separar valores de 1 vetor em 2

2 respostas
J
package vetorsepara;
import java.util.*;
public class Main {

    public static void main(String[] args) {
        int contpar=0, contimpar=0,x=0,y=0,i=0;
        Random random = new Random();
        int v1[] = new int [20];

         for ( i = 0; i < 20; i++) {
            v1[i] = 10 + random.nextInt(100);
            if ( v1[i]%2==0) {
            contpar++;
            }
            else
            {
            contimpar++;
         }
         }
        int vp[] = new int[contpar];
        int vi[] = new int[contimpar];

        for ( i = 0 ; i <20; i++)
        if (v1[i]%2==0)   {
            vp[x]= v1[i];x++;}
        else {
            vi[y] = v1[i];y++;}
        
        Arrays.sort(vp);
        Arrays.sort(vi);
        i=0;
        x=0;
        y=0;
        for (i= 0; i<contpar; i++){
        System.out.println("Números pares "+vp[x]);
        }
         for (i= 0; i<contimpar; i++){
        System.out.println("Números impares "+vi[y]);
        }
}
}
mais isso só é exibo
Números pares 12
Números pares 12
Números pares 12
Números pares 12
Números pares 12
Números pares 12
Números pares 12
Números pares 12
Números pares 12
Números pares 12
Números pares 12
Números pares 12
Números impares 13
Números impares 13
Números impares 13
Números impares 13
Números impares 13
Números impares 13
Números impares 13
Números impares 13

2 Respostas

Rodrigo_Sasaki

Você utiliza um int na iteração, mas imprime uma posição fixa do teu arrayfor (i= 0; i<contpar; i++){ // itera utilizando int i; System.out.println("Números pares "+vp[x]); // imprimindo o índice x? } for (i= 0; i<contimpar; i++){ // itera utilizando int i System.out.println("Números impares "+vi[y]); // imprimindo o índice y? }

J

Quando Utilizo os Indices x e Y me é retornado um erro, vou ver aqui qual é certinho e ja edito.

Criado 20 de junho de 2012
Ultima resposta 20 de jun. de 2012
Respostas 2
Participantes 2