2015-06-21 3 views
0

Я пытаюсь написать программу, которая печатает 2-мерный массив со случайными номерами в диапазоне от 100-10000 и выводит максимальное количество в массиве, в среднем и мин. Программа запросит у пользователя количество строк и столбцов и напечатает случайные числа в этом массиве.Как печатать 2D-массив со случайными номерами

Вот мой код:

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

спасибо за помощь –

Смежные вопросы