package Work;
import java.util.Random;
/*
定义20*20矩阵并随机赋值,打印每行,每列,正负对角线的值
*/
public class Random1 {
public static void main(String[] args) {
//定义二维数组--并初始化每一个值
int[][] arr = new int[20][20];
Random1 rm = new Random1();
int[][] arr1 = rm.input(arr);
rm.printRow(arr1);
rm.printColumn(arr1);
rm.printForwardDiagonal(arr1);
rm.printCounterDiagonal(arr1);
}
//定义给二维数组随机赋值的方法,并返回一个二维数组
public int[][] input(int[][] arr) {
Random r = new Random();
for(int i = 0;i< arr.length;i++) {
for(int j = 0;j<arr[i].length;j++) {
arr[i][j] = r.nextInt(100);
}
}
return arr;
}
//定义打印二维数组每一行并进行打印的方法
public void printRow(int[][] arr) {
int sum = 0;//用于记录每一行的和
for(int i = 0;i<arr.length;i++) {
for(int j = 0;j<arr[i].length;j++) {
sum = sum +arr[i][j];
}
System.out.println("第"+(i+1)+" 行的和为"+sum);
}
}
//定义打印二维数组每一列的方法
public void printColumn(int[][] arr) {
int sum = 0;
for(int i = 0;i< arr.length;i++) {
for(int j = 0;j<arr[i].length;j++) {
sum = sum +arr[j][i];
}
System.out.println("第 "+(i+1)+" 列的和为"+sum);
}
}
//定义打印二维数组正对角线方法
public void printForwardDiagonal(int[][] arr ) {
int sum = 0;
for(int i =0;i< arr.length;i++) {
sum = sum +arr[i][i];
}
System.out.println("正对角线的和为:"+sum);
}
//定义打印二维数组负对角线的方法
public void printCounterDiagonal(int[][] arr) {
int sum = 0;
for(int i = 0;i< arr.length;i++) {
sum = sum +arr[i][arr.length-i-1];
}
System.out.println("负对角线的和为:"+sum);
}
}