Необходимо забить числа в матрицу 9х9. Но почему-то циклы работают не
правильно. Судя по выводу программы обращение к последнему элементу
строки происходит по два раза. Как следствие, отсутствуют числа 9,
19, 29... И последние несколько ячеек остаются пустыми. Кто мне
объяснит, что я не так сделал? Есть смутное ощущение, что я не понял
насчет локальных переменных и области действия, но курение манов не
помогло.
# include <stdio.h>
int field[9][9];
void init_fields (void) {
int horizontal = 0;
int vertical = 0;
int zahl = 0;
int i;
int j;
for (i = 1; i < 10; i++) {
for (j = 1; j < 10; j++) {
field[vertical][horizontal] = zahl++;
horizontal++;
}
horizontal = 0;
vertical++;
}
}
void print_ships (void) {
int horizontal = 0;
int vertical = 0;
int i;
int j;
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
printf (" %d \n", field[vertical][horizontal]);
horizontal++;
}
horizontal = 0;
vertical++;
}
}
int main () {
init_fields();
print_ships();
printf (" %d \n", field[0][7]);
printf (" %d \n", field[0][8]);
printf (" %d \n", field[0][9]);
printf (" %d \n", field[0][10]);
printf (" %d \n", field[0][86]);
printf (" %d \n", field[0][90]);
printf (" %d \n", field[0][95]);
}
Форум —
Development





