gpt4 book ai didi

java - 使用二维数组乘以表

转载 作者:行者123 更新时间:2023-12-02 05:08:02 25 4
gpt4 key购买 nike

我正在尝试使用二维数组制作一个从 1 到 10 的乘法表。当我运行该程序时,我得到的是每个值,而不是表格。我得到的第一个值为 1,其他值为 0。我也得到了错误线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 11 在 summing.main(summing.java:46)您能提供一些有关该算法的提示吗?

public static void main( String[] args) 
{
Scanner scan = new Scanner( System.in);
int x,y,z;
int[][] table = new int[11][11];
table[0][0] = 0;
table[0][1] = 1;
table[0][2] = 2;
table[0][3] = 3;
table[0][4] = 4;
table[0][5] = 5;
table[0][6] = 6;
table[0][7] = 7;
table[0][8] = 8;
table[0][9] = 9;;
table[0][10] = 10;
table[1][0] = 1;
table[2][0] = 2;
table[3][0] = 3;
table[4][0] = 4;
table[5][0] = 5;
table[6][0] = 6;
table[7][0] = 7;
table[8][0] = 8;
table[9][0] = 9;
table[10][0] = 10;

System.out.println( "Start of multiplication\n");

for (x = 0; x <= 10; x++)
{
for (y = 0; y <= 10; y++)
{
table[x][y] = table[x][1] * table[y][1];
System.out.println(table[x][y]);//This line has the error.
}
table[x][y] = table[x][1] * table[y][1];
System.out.print(table[x][y]);
}

System.out.println( "\nEnd of multiplication\n" );
}

最佳答案

您看到一系列行而不是值的原因是您的内部 for 循环使用 println,而不是 print。内部循环将使用 print,然后外部循环将使用 println 来换行。

出现越界异常的原因是:

for (y = 0; y <= 10; y++)
{
table[x][y] = table[x][1] * table[y][1];
System.out.println(table[x][y]);
}
table[x][y] = table[x][1] * table[y][1]; // <======= Here

循环结束后,y 的值为 11,因此用它对表进行索引将导致越界异常。你根本不需要这一行,或者它后面的那一行。在内循环之后,您想要的只是:

System.out.println();

...开始一个新行。

Re 算法:您实际上不需要二维数组(或任何数组)来执行此操作。但如果您使用一个,则不需要用任何东西预先初始化它,因为您有 xy。只需将 xy 的乘积分配给内部循环中的相关单元格即可:

table[x][y] = x * y;

I am trying to make a multiplication table from 1 to 10...

那么你的循环范围是错误的,因为你从0到10(含)。相反,您需要 0(包含)到 10(不包含),并在进行乘法时将 xy 加 1:

int[][] table = new int[10][10];
// ...
for (x = 0; x < 10; ++x) {
for (y = 0; y < 10; ++y) {
// ...
table[x][y] = (x + 1) * (y + 1);
}
}

希望这已经足够了,我不想为您实际编写代码,因为您将通过解决它来了解更多信息。

关于java - 使用二维数组乘以表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27600020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com