0

再一次,我需要帮助我终于得到了多维数组,但不知何故,显示输出不是我想要显示的......

代码是:

导入java.io.*;

公共类多{公共静态无效主(字符串[]args)抛出IOException{

    int [][] age = new int [10][10];
    int num;

    BufferedReader inpt = new BufferedReader (new InputStreamReader(System.in));

    System.out.print("Enter a number: ");
    num=Integer.parseInt(inpt.readLine());

    if (num>0||num<11){
    for(int i=1; i<num; i++){
        System.out.println("\t");
        for(int j=1; j<num; j++){
        age[i][j]=i*j;
        System.out.print(age[i][j]+"\t");
     }
    }
  }
}

}

例如,显示的是..

输入数字:5

  • 1 2 3 4
  • 2 4 6 8
  • 3 6 9 12
  • 4 8 12 16
  • 5 10 15 20

我真正想展示的是

输入数字:5

  • 1 2 3 4 5
  • 2 4 6 8 10
  • 3 6 9 12 15
  • 4 8 12 16 20
  • 5 10 15 20 25

此代码是否有任何替代方案,或者它真的是这样吗?顺便说一句,提前谢谢!

PS:我尝试在没有数组的情况下使用它并且它可以工作,但不知何故我这次想尝试使用数组所以是的。我有点迷路了。

4

1 回答 1

1

您的 for 循环将i=1严格小于 num。因此,对于 5,它会执行 1、2、3、4 并停止。您可能希望从零开始或执行小于或等于 num。

您的其他 for 循环迭代的同上j

如果你改变这些:

for(int i=1; i<num; i++)
for(int j=1; j<num; j++)

用这些 :

for(int i=1; i<=num; i++)
for(int j=1; j<=num; j++)

它可以随心所欲地工作。


只是一个命题 using ArrayListthat 允许数字大于 10 :

 public static void main(String []args)throws IOException{


    ArrayList<ArrayList<Integer>> list = new ArrayList<ArrayList<Integer>>();
    ArrayList<Integer> bufferList= new ArrayList<Integer>();;
    int num;

    BufferedReader inpt = new BufferedReader (new InputStreamReader(System.in));

    System.out.print("Enter a number: ");
    num=Integer.parseInt(inpt.readLine());

    for(int i=1; i<=num; i++){
        System.out.println("\t");
        bufferList= new ArrayList<Integer>();
        for(int j=1; j<=num; j++){
            bufferList.add(i*j);
        }

        list.add(bufferList);
    }

    for (ArrayList<Integer> alist : list){
        for (Integer a : alist){
            System.out.print(a+"\t");
        }
        System.out.println();
    }

}
于 2013-09-18T13:10:57.343 回答