gpt4 book ai didi

java - 如何让这个数组乘法表发挥作用

转载 作者:行者123 更新时间:2023-12-01 04:44:12 24 4
gpt4 key购买 nike

九九乘法表作业

我正在尝试分配用户输入数组大小并添加数字 1 - 数组大小,然后打印出列和行数组,但我认为我做得不太正确:

import java.util.Scanner;

public class MultTable
{
public static int[]rows;
public static int[]cols;

public static void main (String args[])
{
intro();
getRows();
getCols();
fillRows();
fillCols();
printTable();
}

public static void intro()
{
System.out.print("Welcome to the Multiplication Table program!");
}

public static void getRows()
{
Scanner input=new Scanner (System.in);
System.out.print("\nEnter number of row:");
int sizerow=input.nextInt();
int rows[]=new int[sizerow];
}

public static void getCols()
{
Scanner input=new Scanner(System.in);
System.out.print("Enter number of columns:");
int sizecol=input.nextInt();
int cols[]=new int[sizecol];
}

public static void fillRows()
{
for(int i=1;i<=rows.length;i++)
{
int rows[]=new int[i];
}
}

public static void fillCols()
{
for(int j=0;j<cols.length;j++)
{
int cols[]=new int[j];
}
}

public static void printTable()
{
System.out.print("\n\nHere is your %dx%d multiplication table:");
System.out.print(cols);
System.out.print("--------");
for(int i=1; i<=rows.length;i++)
{
for(int j=1;j<=cols.length;j++)
{
System.out.print(rows[i]*cols[j]);
}
}
}
}

它一直说:

Exception in thread "main" java.lang.NullPointerException at MultTable.fillRows(MultTable.java:41) at MultTable.main(MultTable.java:13)

最佳答案

这段代码有几个问题。首先,您遇到的异常是因为 rows当您尝试访问 length 时为 null在fillRows() .

for(int i=1;i<=rows.length;i++)
^^^^

这是因为当使用int rows[]=new int[sizerow];时在getRows() ,它正在初始化一个新的局部变量,仅对getRows()可见。功能。您可能想做rows = new int[sizerow];反而。这将初始化上面声明的成员变量。对于列也是如此。

fillRows() 中的循环中正在执行类似的错误分配。和fillCols() 。对于这些,您可能想做类似 rows[i] = i + 1; 的事情相反。

此外,请仔细检查所有循环的边界。其中一些从 1 开始,一些从 0 开始。其中一些使用 <= length ,一些< length 。您可能想从 0 开始并使用 < length在所有这些上。

关于java - 如何让这个数组乘法表发挥作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16094296/

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