编写程序,输入任意数字N,在屏幕输出N*N矩阵,并输出矩阵每列(column)元素的和,每行(row)元素的和,两条对角线元素的和。java
public class Test {
private void print(int num) {
int[][] val = new int[num][num];
Random random = new Random();
for (int i = 0; i < num; i++) {
for (int j = 0; j < num; j++) {
val[i][j] = random.nextInt(100);
System.out.print(val[i][j] + "\t");
}
System.out.println();
}
for (int i = 0; i < num; i++) {
int sumT = 0;
for (int v : val[i]) {
sumT += v;
}
System.out.print("第" + (i + 1) + "行和为:" + sumT);
sumT = 0;
for (int j = 0; j < num; j++) {
sumT += val[j][i];
}
System.out.println("\t\t第" + (i + 1) + "列和为:" + sumT);
}
int sumLR = 0, sumRL = 0;
for (int i = 0; i < num; i++) {
sumLR += val[i][i];
sumRL += val[i][num - 1 - i];
}
System.out.println("左上 - 右下 对角线和为:" + sumLR);
System.out.println("右上 - 左下 对角线和为:" + sumRL);
}
public static void main(String[] args) {
Test solution = new Test();
solution.print(10);
}
}
输出示例
问题没阐述清除,矩阵里面取值是column和row的拼接值?
有啥不懂的?双层循环遍历求和就行了。