2015-09-07 2 views
1

Мне нужно получить следующие входы клавиатуры в 2d-массив.введите в массив 2d с предпочтением пользователя

1 34 56 
1 6 89 
2 34 67 23 45 
3 56 67 78 89 45 23 
1 45 78 

вход построен следующим образом: первый элемент каждой строки указывает количество пар и сопровождается соответствующим числом пар. Как это может быть достигнуто

int[][] arr2 = new int[n][]; 
for (int i = 0; i < n; i++) { 
    arr2[i] = new int[10]; 
    arr2[i][0] = x.nextInt(); 

    arr2[i] = new int[arr2[i][0]]; 

    for (int h = 1; h < 2 * arr2[i][0]; h++) { 
     x.nextInt(); 
    } 
} 
+0

Вы сохраняете количество пар в элементе массива и затем заменяете этот массив новым массивом, который по спецификации заполняется нулями; когда вы используете нулевой элемент в защите цикла for, он будет равен нулю. Попробуйте сохранить количество пар в локальной переменной и сделайте длину нового внутреннего массива вдвое длиннее. –

ответ

0

Я думаю, что вы не должны переопределить массив с длиной строки, а затем снова заменить его, а затем присвоить только массив к соответствующему элементу

int[][] userInput = new int[rowCount][]; 
for (int i = 0; i < rowCount; i++) { 
    int pairCount = x.nextInt(); 
    userInput[i] = new int[pairCount * 2]; 
    for (int rowIndex = 0; rowIndex < 2 * pairCount; rowIndex++) { 
     userInput[i][rowIndex] = x.nextInt();  
    } 
} 
Смежные вопросы