为了账号安全,请及时绑定邮箱和手机立即绑定

我需要帮助,我需要编写一个数组,将变量与 math.random 放在一起并计算倾斜

我需要帮助,我需要编写一个数组,将变量与 math.random 放在一起并计算倾斜

慕容708150 2024-01-28 17:05:58
该数组打印零,然后才打印数字,并且不计算倾斜我尝试切换变量并重写为编码循环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--;

}

希望这能解决您的问题。


查看完整回答
反对 回复 2024-01-28
  • 1 回答
  • 0 关注
  • 86 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信