2014-10-19 4 views
-1

Я действительно новичок в java и немного беспокоюсь об этом. Я смотрел на другой код здесь и в других местах с похожими проблемами, но я не понимаю файлы библиотеки и т. Д. Сейчас я пытаюсь понять основы. Любая помощь будет оценена по достоинству. Мой текущий код:ошибка присвоения случайных чисел массиву 2d

public static void main(String[] args) { 

     double[][] father = new double[25][25]; 
     for (int i = 0; i < 25; i++){ 
      father[i] = Math.random(); 
      for (int j = 0; j < 25; j++){ 
       father[j] = Math.random(); 
      } 

     } 
+0

Спасибо так много. У меня проблемы с пониманием алгоритмов кодирования, и это очень помогает! Я очень ценю это. – peneloperain

ответ

0

я не знаю Java, но 2d массив должен работать как этот

public static void main(String[] args) { 

     double[][] father = new double[25][25]; 
     for (int i = 0; i < 25; i++){ 
      for (int j = 0; j < 25; j++){ 
       father[i][j] = Math.random(); 
      } 

     } 
0

Вы пытаетесь установить массив удваивается к двойному. при попытке указать определенный элемент в массиве 2d всегда используйте arrayName [index1] [index2].

public static void main(String[] args) { 

    double[][] father = new double[25][25]; 
    for (int i = 0; i < 25; i++){ 
     for (int j = 0; j < 25; j++){ 
      father[i][j] = Math.random(); 
     } 

    } 
0

Для двумерного массива, такого как у вас, требуются обе индексы для обращения к определенному элементу. Например, father[3][6] - это элемент массива (двойной, потому что это тип массива), но father[i] - нет.

Кроме того, вы должны использовать длины массивов, а не жестко заданные значения, в качестве ограничений итерации. Таким образом, если размер массива изменится, вам также не нужно изменять пределы. Вместо for (int i = 0; i < 25; i++) вы должны использовать for (int i = 0; i < father.Length; i++), так что если длина массива изменяется, вы все равно перебираете все это без переполнения.

Всего:

double[][] father = new double[25][25]; 
for (int i = 0; i < father.Length; i++) { 
    for (int j = 0; j < father[i].Length; j++) { 
     father[i][j] = Math.random(); 
    } 
} 
Смежные вопросы