我需要帮助,我需要编写一个数组,将variabels与math.random并计算斜率

数组先打印零,然后打印数字 而且不偏斜

我试图切换变量并重写为编码循环

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 array
4
1 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 is7
your second slant is7
tmdgzz 回答:我需要帮助,我需要编写一个数组,将variabels与math.random并计算斜率

您的问题的答案是您两次进行了相同的计算。 问题是您首先从 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--;
}

希望这可以解决您的问题。

本文链接:https://www.f2er.com/3167909.html

大家都在问