该数组打印零,然后才打印数字,并且不计算倾斜我尝试切换变量并重写为编码循环import java.util.Scanner;public class shishistimempire { public static void main(String[] args) { // TODO Auto-generated method stub Scanner s= new Scanner(System.in); int i; System.out.println("enter the size of the array"); i=s.nextInt(); int[][] arr= new int[i][i]; for(int j=0;j<arr.length;j++) { for(int n=0;n<arr.length; n++) { arr[j][n]= (int) (Math.random()*i+1); } for(int y=0;y<arr.length;y++) { for(int r=0;r<arr.length;r++) { System.out.print(arr[y][r] + " "); } System.out.println(); } } int am=0 , ar=0; for (int o=0; o<arr.length;o++) { ar= ar+arr[o][o]; } for(int h=0; h<arr.length;h++) { am=am+arr[i-1][i-1]; i--; }System.out.println("your main slant is" + am);System.out.println("your second slant is" + ar); }}enter the size of the array41 1 4 3 0 0 0 0 0 0 0 0 0 0 0 0 1 1 4 3 2 2 3 2 0 0 0 0 0 0 0 0 1 1 4 3 2 2 3 2 3 1 2 4 0 0 0 0 1 1 4 3 2 2 3 2 3 1 2 4 4 3 2 2 your main slant is7your second slant is7
1 回答
千巷猫影
TA贡献1829条经验 获得超7个赞
你的问题的答案是你做了两次相同的计算。问题是你首先从0,0开始,然后在n,n结束。在第二次计算中,您从n,n开始,然后向后计算到0,0。
因此,要计算第二个“倾斜”,您必须首先从0,n或n,0开始,然后增加“x”坐标并减少“y”坐标”或增加“y”坐标并减少“x”协调。
在代码中,这可能如下所示:
int x = 0, y = 0, am = 0, ar = 0;
for (int i = 0; i < arr.length; i++) {
ar += arr[x][y];
x++;
y++;
}
x = 0;
y = arr.length - 1;
for (int i = 0; i < arr.length; i++) {
am += arr[x][y];
x++;
y--;
}
希望这能解决您的问题。
添加回答
举报
0/150
提交
取消