Probablemente lo esté haciendo todo mal, pero tengo una matriz de números y me gustaría extraer números positivos de esa matriz y ponerlos en una matriz separada. Potencialmente, me gustaría hacer lo mismo con números negativos.

Esto es lo que probé (el código es incorrecto, pero estoy atrapado aquí en este momento):

public static void main(String[] args) {
 int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87};
 
 int [] arrayPositive = Arrays.copyOf(array, 13);
 
    for (int i = 0; i < arrayPositive.length; i++) {
      if (i > 0) {
          System.out.println("" + i);
      }
    }

¡Cualquier comentario será más que bienvenido! Gracias por adelantado.

-3
cuphead 22 ago. 2020 a las 19:53

3 respuestas

La mejor respuesta

Ahi tienes

    public static void main(String[] args) {
        int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87};
        int l = array.length;
        int[] arrayPositive = new int[l];
        int[] arrayNegative = new int[l];
        int i,j,k;
        i=j=k=0;
        for (i = 0; i < l; i++){
            if (array[i] > 0) {
                arrayPositive[j]=array[i];
                ++j;
            }
            else if(array[i] < 0){
                arrayNegative[k]=array[i];
                ++k;
            }
        }
        for (i = 0; i < l; i++){
            System.out.println(arrayPositive[i]+"\t" + arrayNegative[i]);
        }
    }
0
Pal Laden 22 ago. 2020 a las 17:06

Si desea extraer números positivos, debe verificar si cada elemento de la matriz es mayor que 0, como en el siguiente código.

for (int i = 0; i < arrayPositive.length; ++i) {
      if (arrayPositive[i] > 0) {
          System.out.println("" + arrayPositive[i]);
      }
    }
0
danula godagama 22 ago. 2020 a las 17:05
public static void main(String[] args) {
  
  int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87};
  
  int [] arrayPositive = new int[array.length];
 
    for (int i = 0; i < array.length; i++) {
      if (array[i] > 0) {
          System.out.println(""+array[i] );
          arrayPositive[i]=array[i];
      }
    }
 
}
0
Aravind OR 22 ago. 2020 a las 17:29