输入一个N、M,表示有个N*N的二维数组,接下来有M行,每行输入3个整数I,J,W,表示二维数组A[I,J]中的数值是W在这个二维数组中,有A[I,J]=A[J,I]。分别输出二维数组中每一行、每一列、从左上到右下对角线、从右上到左下和整个数组的数值和。输入:3 51 1 31 2 72 2 52 3 23 3 4输出:10 {第一行的和}14 {第二行的和}6 {第三行的和}10 {第一列的和}14 {第一列的和}6 {第一列的和}12 {从左上到右下对角线的和}5 {第从右上到左下的和}30 {整个数组的和}
想了很多办法 貌似都不行
想了很多办法 貌似都不行
* @param args
*/
public static void main(String[] args) {
int n=0;
int m=0;
Scanner scanner = new Scanner(System.in);
n = scanner.nextInt();
m = scanner.nextInt();
System.out.println(n+"\t"+m);
int A[][] = new int[n][n];
for (int j=0;j<n;j++) {
for (int k=0;k<n;k++) {
A[j][k] = 0;
}
}
for (int i=0;i<m;i++) {
int I = scanner.nextInt();
int J = scanner.nextInt();
int W = scanner.nextInt();
System.out.println(I+"\t"+J+"\t"+W);
A[I][J] = A[J][I] = W;
}
int suma = 0;
int sumb = 0;
int sumc = 0;
int sumd = 0;
int sum = 0;
for (int j=0;j<n;j++) {
for (int k=0;k<n;k++) {
suma += A[j][k];
sumb += A[k][j];
sum += A[j][k];
}
sumc += A[j][j];
sumd += A[j][n-j-1];
System.out.println(suma+"\t{第"+(j+1)+"行的和}");
System.out.println(sumb+"\t{第"+(j+1)+"列的和}");
suma = 0;
sumb = 0;
}
System.out.println(sumc+"\t{从左上到右下对角线的和}");
System.out.println(sumd+"\t{第从右上到左下的和}");
System.out.println(sum+"\t{整个数组的和}");
}}应该输入(数组从0开始的):3 50 0 30 1 71 1 51 2 22 2 4输出:10 {第1行的和}14 {第2行的和}6 {第3行的和}10 {第1列的和}14 {第2列的和}6 {第3列的和}12 {从左上到右下对角线的和}5 {第从右上到左下的和}30 {整个数组的和}