2016-06-29 7 views
-2

Я пытаюсь заполнить 2D-массив через циклы. но он дублирует последнее значение, как показано ниже.Дублирующее значение в 2D-массиве

1 2 3 
3 4 5 
5 6 7 

Код:

void fillArray(int array[][2]) 
{ 
int val = 0; 
for(int i = 0; i < 3;++i) 
{ 
    for(int j = 0; j < 3; ++j) 
    { 
     array[i][j] = ++val; 
    } 
    --val; 
} 
} 

Любое решение этой проблемы?

+2

lol, remove '--val;' ... –

+1

Ударьте меня к нему, и вы добавили дополнительный LOL. Не совсем опечатка, но голосование закрывается как не по теме, вряд ли поможет будущим читателям. – user4581301

+4

Вероятно, неопределенное поведение 'array [] [2]' (not 3) –

ответ

0

В вашем коде у вас есть --val;, который уменьшает число в конце каждой строки. Удалите это, чтобы получить последовательные номера.

+0

Причина, по которой у меня есть --val, потому что, если я ее не добавлю, результат будет следующим: '1 2 4', и поэтому 3-я цифра равна цифре + 2 в каждой строке. Обновление: исправлено путем удаления --val и добавления 3. – nix