我需要帮助,我需要编写一个数组,将变量与 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


慕容708150
浏览 29回答 1
1回答

千巷猫影

你的问题的答案是你做了两次相同的计算。问题是你首先从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++) {&nbsp; &nbsp; ar += arr[x][y];&nbsp; &nbsp; x++;&nbsp; &nbsp; y++;}x = 0;y = arr.length - 1;for (int i = 0; i < arr.length; i++) {&nbsp; &nbsp; am += arr[x][y];&nbsp; &nbsp; x++;&nbsp; &nbsp; y--;}希望这能解决您的问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java