【问题标题】:Multidimensional Array [Multiplication Table]多维数组【乘法表】
【发布时间】:2013-09-23 06:23:01
【问题描述】:

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

代码是:

导入 java.io.*;

公共类多{ public static void main(String []args) throws 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:我尝试不使用数组并且它可以工作,但不知何故我这次想尝试使用数组所以是的。我有点迷路了。

【问题讨论】:

    标签: arrays multidimensional-array


    【解决方案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++)
    

    它可以随心所欲地工作。


    只是一个使用ArrayList 的命题,允许大于 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();
        }
    
    }
    

    【讨论】:

    • 呃。谢谢。对于这些语句,我忘了用等号使其小于或等于: for(int i=1; i
    • 如果有用,请考虑接受和/或赞成这个答案。下次您也可以使用 java 集合(例如 ArrayList)而不是数组。它会更灵活(避免用幻数初始化)
    猜你喜欢
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    • 2022-07-12
    • 1970-01-01
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多