Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Проблемы с массивом

Эрик Мкртчян Ученик (81), закрыт 4 года назад
Есть задача где надо в двумерном массиве 10 на 6 разместить 15 случайных чисел в случайных местах, а остальные ячейки 0 оставались. Я сделал но при каждом запуске то 14 то 13 то 12 чисел инициализируются.
int count = 0;
int[][] arr = new int[10][6];
while (count < 15) {
count++;
arr[(int) (Math.random() * arr.length)][(int) (Math.random() * arr[0].length)] = (int) (Math.random() * 1000);
}
for (int[] arr1 : arr) {
System.out.println(" ");
for (int j = 0; j < arr[0].length; j++) {
System.out.printf(" " + arr1[j]);
}
}
Лучший ответ
Андрей Высший разум (425879) 4 года назад
У тебя несколько случайных чисел записываются в одну ячейку. Надо же проверять, что в ячейке массива ноль.

while (count < 15) {
int i = (int) (Math.random() * arr.length);
int j = (int) (Math.random() * arr[0].length);
if (arr[i][i] == 0) {
arr[i][j] = (int) (Math.random() * 1000) + 1;
++count;
}
}

А ещё лучше - записать случайные числа в первые 15 ячеек массива, а потом массив перемешать.
Эрик МкртчянУченик (81) 4 года назад
Спасибо большое, тоже мысль была сначала инициализировать потом перемешать)
Остальные ответы
Александр Искусственный Интеллект (290749) 4 года назад
у тебя случайные числа начиная с нуля... так что не понять по какой причине в элементе содержится ноль...
Похожие вопросы