Dimesion indefinida de un array

0 votos
preguntado por Whoviano (120 puntos) Ene 28, 2016 en Java

Al crear los dos arrays(par[] y  impar[]) quiero que la longitud de estos dos vectores sea la cantidad de números que hay en cada uno. Quiero decir que cuando el usuario inserta un número, ese numero va a un array o otro. Quiero que a medida que vaya insertando un número en un array este incremente su longitud en una unidad. ¿Se puede hacer eso? y ¿Cómo? Gracias de antemano

Os muestro mi código:

public class ParOImpar{
    public static void main(String[]args){
       Scanner teclado = new Scanner(System.in);
       int  num, opcion, npar, nimpar;
       npar = 0;
       nimpar = 0;
       int par[] = new int[50];
       int impar[] = new int[50];
         do{
         System.out.println("Inserte el número entero para saber si es par o impar");
         num = teclado.nextInt();
         if (num%2==0){
            par[npar] = num;
            npar++;
            System.out.println("El número "+ num + " es par.");
             }
         else{
             impar[nimpar] = num;
             nimpar++;
             System.out.println("El número " + num + " es impar.");
            }
         System.out.println("¿Quiere insertar otro número? \n SI=1  y NO =0");
         opcion = teclado.nextInt();
       }
       while(opcion == 1);
       System.out.print("Los números pares que usted ha insertado son: ");
       for (int i=0; i<npar; i++)
        {
             if (i<npar-1){
              System.out.print(par[i]+", ");
              }
            else
             {
               System.out.println("y " + par[i] + ". ");
                }
        }
       System.out.print("Los números impares que usted ha insertado son: ");
       for (int i=0; i<nimpar; i++)
        {
           
           {
             if (i<nimpar-1){
              System.out.print(impar[i]+", ");
              }
            else
             {
               System.out.println("y " + impar[i] + ". ");
                }
          }
         }
        }
    }

1 Respuesta

0 votos
respondido por sandro (250 puntos) Feb 9, 2016
tu lo estas limitando a 50, si en lugar de inicializarlo  asi
public int[] numeros_par = new int[];
public int[] numeros_impar = new int[];

public int numeros;

do{
 numeros=teclado.lee_int();
 if(numeros %2==0)
  numeros_par[numeros_par.legth+1]=numeros;
else
  numeros_impar[numeros_impar.legth+1]=numeros;
 System.out.println("tenemos la cantidad de numeros pares que a escrito :".numeros_par.length;
 System.out.println("tenemos la cantidad de numeros impares que a escrito :".numeros_impar.length;
} while numeros==0);

los arreglos en java y lenguajes de 4 generacion son indefinidos

Preguntas relacionadas

0 votos
2 respuestas
preguntado por bones18 (120 puntos) Ene 28, 2016 en Java
0 votos
8 respuestas
preguntado por sakura (260 puntos) Ene 28, 2016 en Java
0 votos
1 respuesta
0 votos
1 respuesta
Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código
...