2015-06-21 228 views
0

我正在尝试编写一个打印二维数组的程序,该程序的随机数范围从100-10000,并打印出数组中的最大数,平均值和最小值。该程序将询问用户行数和列数,并在该数组中打印随机数。如何用随机数打印二维数组

这里是我的代码:

Random rand = new Random(); 

int randomnumber = rand.nextInt(9901) + 100; 

Scanner console = new Scanner(System.in); 

System.out.println("Enter row"); 
int n = console.nextInt(); 

System.out.println("Enter column"); 
int y = console.nextInt(); 

int[][] array = new int[n][y]; 
array[n][y] = randomnumber; 

int k; 
for (int i = 0; i <= array.length; i++) { 
    for (k = 0; k <= array[i].length; k++) { 
     System.out.print(array[i][k]); 
    } 
} 
+2

但是,什么是您所遇到的概率? –

+0

当我尝试打印阵列时,它不打印 –

+0

是的,它没有打印任何东西 –

回答

1

如果你想使用随机值来填充数组,你需要在一个循环中产生的随机值,然后将它们写入到这个循环数组。到目前为止,您只能生成一个值(并将其置于无效位置)。

此外,由于数组是基于0的,因此您的循环应为for(i=0; i<arr.length; i++);,而不是<=

下面是一些代码:

// don't declare k here 
for(int i=0;i<array.length;i++){ 

for(int k=0;k<array[i].length;k++){ 
     array[i][k]=rand.nextInt(9901)+100; 
     System.out.print(array[i][k]); 


} 
System.out.println(); // separate rows 
} 
+0

感谢它的工作,但我会如何使这种权利对齐。我得到的输出,但它没有被分开。 –

+0

@kylwalfer您需要'System.out.printf'格式正确。以下是其中一个示例:https://stackoverflow.com/questions/15215326/how-can-i-create-ascii-table-in-java-in-a-console/15215434#15215434 – Pshemo

+0

感谢您的帮助 –