【问题标题】:FIlling a 2D array with random integers java用随机整数填充二维数组java
【发布时间】:2015-10-30 02:52:15
【问题描述】:

我正在尝试创建一个 nxn 数组,其中包含 1 到 10 之间的随机整数。当我尝试将其打印出来时,我得到了一个奇数的整数,没有填充数组,并且永远不会达到正确的整数数(例如,假设的 5x5 数组返回 17 个整数)。代码 sn-p 如下,假设所有变量都正确声明,除非包含在此处并导入 java.util.Random。

if (choice==1){
     Random rand = new Random();
     System.out.println("Please input a power n for (nxn array) between 1-6");
     int power = kb.nextInt();
     int[][] randMatrix = new int[power-1][power-1];
     if (power < 1 || power > 6){
        System.out.println("Invalid power");
     }else{
        for (i=0; i<randMatrix.length; i++){
           for (j=0; j<randMatrix.length; j++){
              randMatrix[i][j] = rand.nextInt(9);
           }
        }for (i=0; i<randMatrix.length; i++){
           for (j=0; j<randMatrix.length; j++){
              System.out.println(randMatrix[i][j]);
           }
        }
     }
  }

【问题讨论】:

  • 您的 j 循环在条件中使用了错误的长度。
  • 尝试 (j=0; j

标签: java random


【解决方案1】:

它打印的不是 17 个整数,而是 16。这是因为 16 是 4 * 4,你应该这样做

new int[power][power]

而不是

new int[power-1][power-1]

cmets 也应该是正确的

for (j = 0; j < randMatrix[i].length; j++)

但这并不能解释你的问题,因为数组是正方形的。

【讨论】:

    猜你喜欢
    • 2014-05-10
    • 2017-04-17
    • 2012-07-27
    • 2014-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多