有下面一段程序,计算二维数组各列的和:class test1{
public static void main(String args[]){
int score[][]={{10,20,20},{20,40,30},{10,15,24},{25,36,21}};
int sum[] = new int[3]; for(int j=0;j<score[0].length;j++){ // j 表示列数
sum[j] = 0; for(int i=0;i<score.length;i++){ // i 表示行数
sum[j] += score[i][j];
}

System.out.println(sum[j]);
}
}
}
我想知道,怎么样才能让第4行
int sum[] = new int[3];
不直接指定数字,而是跟据上边声明的二维数组的列数自动调整。

解决方案 »

  1.   

    int sum[]=new int[score[0].length]
      

  2.   

    int sum[] = new int[score[0].length];
      

  3.   

    如果確定數目都一樣,那隨便用第一個來判斷就可以了。
    int sum[] = new int[score[0].length];
      

  4.   

    public class Test { public static void main(String[] args) {
    int score[][] = { { 10, 20, 20 }, { 20, 40, 30 }, { 10, 15, 24 }, { 25, 36, 21 } };
    for (int j = 0; j < score[0].length; j++) {
    int sum = 0;
    for (int i = 0; i < score.length; i++) {
    sum += score[i][j];
    }
    System.out.println(sum);
    }
    }
    }
      

  5.   

    int sum[]=new int[score[0].length]
      

  6.   

      数组一般都是for 输出
        除非你用别的数组吧  List
      

  7.   

    楼主,你那个是最简单的循环了,如果你想代码量少点,你可以用递归
    import java.util.Arrays;public class Test {
    public static void test(int[][] score,int index,int[] sum) {
    if(index >= score.length){
    return ;
    }
    for(int i = 0 ; i < score[0].length ; i ++){
    sum[i] += score[index][i];
    }
    test(score,index+1,sum);
    }

    public static void main(String[] args){
    int score[][] = { { 10, 20, 20 }, { 20, 40, 30 }, { 10, 15, 24 },
    { 25, 36, 21 } };
    int sum[] = new int[score[0].length];
    test(score,0,sum);
    System.out.println(Arrays.toString(sum));
    }
    }
      

  8.   

    test方法或者直接写成这样public static void test(int[][] score,int index,int[] sum) {
    if (index < score.length) {
    for (int i = 0; i < score[0].length; i++) {
    sum[i] += score[index][i];
    }
    test(score, index + 1, sum);
    }
    }