多维数组[乘法表]

时间:2013-09-18 13:08:04

标签: arrays multidimensional-array

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

代码是:

import java.io。*;

公共类Multi {     public static void main(String [] 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

这个代码是否有其他选择,或者它的确如此? 顺便说一句,提前谢谢!

P.S:我尝试使用没有数组并且它可以工作,但不知何故我想用数组尝试它这次是soo是的。我有点失落。

1 个答案:

答案 0 :(得分:1)

你的for循环从i=1到严格小于num。因此,对于5,它确实1,2,3,4和停止。您可能希望从零开始或者小于或等于数字

同意你的另一个循环迭代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++)

它可以按照您的意愿运作。


只是使用允许数字大于10的ArrayList的命题:

 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();
    }

}