有下面一段程序,计算二维数组各列的和: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];
不直接指定数字,而是跟据上边声明的二维数组的列数自动调整。
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];
不直接指定数字,而是跟据上边声明的二维数组的列数自动调整。
int sum[] = new int[score[0].length];
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);
}
}
}
除非你用别的数组吧 List
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));
}
}
if (index < score.length) {
for (int i = 0; i < score[0].length; i++) {
sum[i] += score[index][i];
}
test(score, index + 1, sum);
}
}