import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int m = in.nextInt();
int n = in.nextInt();
int[][] array = new int[m][n];
//利用随机数初始化二维数组
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
array[i][j] = (int) (Math.random() * 10);
}
}
//按列求二维数组的和
int[] sum1 = new int[array.length];
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
sum1[j] += array[i][j];
}
}
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j] + " ");
}
System.out.println();
}
for (int i = 0; i < array[i].length; i++) {
System.out.print(sum1[i] + " ");
}
}
}
最后一个for循环里面改成array.length看看是不是你要的结果
import java.util.Scanner;
public class Hex {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int m = in.nextInt();
int n = in.nextInt();
int[][] array = new int[m][n];
//利用随机数初始化二维数组
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
array[i][j] = (int) (Math.random() * 10);
}
}
//按列求二维数组的和
int[] sum1 = new int[array.length];
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
//sum1 用的长度是 array.length 不是 array[i].length 下面使用sum1[j]很容易出现数组越界
//sum1[j] += array[i][j];
sum1[i] += array[i][j];
}
}
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j] + " ");
}
System.out.println();
}
for (int i = 0; i < array[i].length; i++) {
//这里和上面一样, i < array[i].length 是 二级数组长度, sum[i] 是一级数组长度
System.out.print(sum1[i] + " ");
}
}
}
报错信息发出来呀