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

我无法使用 JAVA 中的 pow 函数将值插入到矩阵字段中

我无法使用 JAVA 中的 pow 函数将值插入到矩阵字段中

凤凰求蛊 2023-12-10 09:47:27
您好,我使用 pow 函数对矩阵中的输入值进行赋值,其中行是列的幂。 我们应该通过获取行号和列的幂来获取字段的值,例如,如果我们位于第 3 行和第 2 列,我们应该得到值 9所以这是我的代码,我不明白为什么会出现此错误: 错误   `public static void main(String args[]) {        int n = (int)(Math.random()*100) % 10;        System.out.println(n);        if(n == 0 || n == 10){            System.out.println("The program needs a number between 1 and 10");            System.exit(0);        }        //int [] myArray = new int[n];        int [][] myMatrix = new int[n][n];        for (int i=1; i<=n; i++){            for(int j=1; j<=n; j++){                int value = (int) Math.pow(i,j);                myMatrix[i][j] = value;                System.out.print(myMatrix[i][j] + "\t");            }            System.out.println();        }        }}
查看完整描述

3 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

在你们的帮助下我终于意识到我做错了什么


for (int i=0; i<n; i++){

            for(int j=0; j<n; j++){

                int value = (int) Math.pow((i+1),(j+1));

                System.out.print(value + "\t");

                myMatrix[i][j] = value;


            }

这是我得到的编辑


向大家致以最诚挚的问候


查看完整回答
反对 回复 2023-12-10
?
繁星淼淼

TA贡献1775条经验 获得超11个赞

尝试将 for 循环更改为:


for (int i=0; i<n; i++){

            for(int j=0; j<n; j++){ 

数组中的默认索引从 0 而不是 1 开始,最后一个索引是 length-1。如果您正在访问大小为 n 的数组,则其可能的索引为 - 0,1,2....n-1。如果您尝试访问总行数为 n 的数组/矩阵,则其最后一个索引为 n-1。您的循环读取索引 n,因此会发生 indexoutofbound 错误。


查看完整回答
反对 回复 2023-12-10
?
慕容3067478

TA贡献1773条经验 获得超3个赞

int [][] myMatrix = new int[n+1][n+1];

因为你的循环结束于<=n


查看完整回答
反对 回复 2023-12-10
  • 3 回答
  • 0 关注
  • 75 浏览

添加回答

举报

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