java数组,执行正数和负数

时间:2015-12-15 17:51:14

标签: java arrays

我需要从数组列表中执行正数和负数。我还需要从数组列表中执行重复项。我将发布我的java代码,希望有人能告诉我为什么我不能运行这段代码。它有什么缺失吗?提前谢谢。

 public static void main(String[] args) {

    int i, a, b;
    int[] array1 = new int[20];//{12,23, -22, 0, 43,545, -4, -55,43, 12,0, -999, -87

    array1[0] = 12;
    array1[1] = 23;
    array1[2] = -22;
    array1[3] = 0;
    array1[4] = 43;
    array1[5] = 545;
    array1[6] = -4;
    array1[7] = -55;
    array1[8] = 43;
    array1[9] = 12;
    array1[10] = 0;
    array1[11] = -991;
    array1[12] = -87;

    int[] arrayPlus = new int[20];
    int[] arrayMinus = new int[20];


    a = b = 0;


    for (i = 0; i < 13; i++) {
        if (array1 > 0 || array1 == 0) {
            arrayPlus[a] = array1;
            a++;
        } else {
            arrayMinus = array1;
            b++;
        }

    }
    System.out.println("Positive array numbers");
    for (i = 0; i < a; i++) {
        System.out.println(arrayPlus);
    }


    System.out.println("");

    System.out.println("Negative array numbers");
    for (i = 0; i < b; i++) {
        System.out.println(arrayMinus);
    }

  }
}

3 个答案:

答案 0 :(得分:1)

您正在将整个表array1与整数进行比较。你不能这样做。你应该只比较数组中的一个元素0.这意味着你应该使用array1 [i]。

答案 1 :(得分:1)

尝试更改此块:

  if (array1 > 0 || array1 == 0){
  arrayPlus[a] =array1;
  ...
 {arrayMinus =array1;
  ...
 }

for (i = 0; i < a; i++) {
System.out.println(arrayPlus);}

 System.out.println("Negative array numbers");
 for (i = 0; i < b; i++) {
 System.out.println(arrayMinus);}

 }

有了这个:

   if (array1[a] > 0 || array1[a] == 0){
   arrayPlus[a] =array1[a];
  ...
  {arrayMinus[a] =array1[a];

 ...
 for (i = 0; i < a; i++) {
System.out.println(arrayPlus[a]);}

  System.out.println("Negative array numbers");
for (i = 0; i < b; i++) {
System.out.println(arrayMinus[b]);}

}

要获得更多学习array,请进入link

答案 2 :(得分:0)

尝试代替代码

for (i = 0; i < 13; i++) {
    if (array1 > 0 || array1 == 0) {
        arrayPlus[a] = array1;
        a++;
    } else {
        arrayMinus = array1;
        b++;
    }

}

使用以下代码:

for (i = 0; i < 13; i++) {
    if (array1[i] > 0 || array1[i] == 0) {
        arrayPlus[a] = array1[i];
        a++;
    } else {
        arrayMinus[b] = array1[i];
        b++;
    }
}

您应该使用数组元素(array1 [i],arrayMinus [b])而不是整个数组(array1,arrayMinus)。代码存在一些问题:

for (i = 0; i < a; i++) {
    System.out.println(arrayPlus); // use arrayPlus[i]
}


System.out.println("");

System.out.println("Negative array numbers");
for (i = 0; i < b; i++) {
    System.out.println(arrayMinus); // use arrayMinus[i]
}