Многомерный массив: таблица добавления печати в C

int main(){
int row=0,col=0;
printf("Enter number of rows of the table\n");
scanf("%d",&row);
printf("Enter number of columns of the table\n");
scanf("%d",&col);
printTable(row,col);
}

void printTable(int row,int col){
int i =0,j=0,k=1,L=1,num=0;
printf("row: %d, col: %d\n",row,col); 
int table[row][col];
for (i;i
<p> Попытка распечатать таблицу дополнений с использованием многомерного массива, мой вывод выглядит следующим образом:</p> <p> строка: 4, col: 4</p> <p> 0 1 2 3</p> <p> Но я должен получить</p> <p> 0 1 2 3</p> <p> 1 2 3 4</p> <p> 2 3 4 5</p> <p> 3 4 5 6</p> <p> Пожалуйста, помогите мне получить правильный результат. благодаря</p>
2 ответа

for (j;j
<p> Вы не сбрасываете <code>j до нуля перед вторым и последующим проходами. Измените это на

for (j=0;j
<p> Возможно, вы захотите изменить другой for-loop (на <code>i). Как правило, если у вас нет очень хорошего причины, чтобы не делать этого, вы всегда должны инициализировать переменную цикла до первого прохода; что, почему это первый пункт из for синтаксиса существует, в конце концов.

Кстати, если вы не хотели инициализировать переменную цикла, вы могли бы написать это как for (;j<col;j++) {< code=""> - как вы ее написали, <code>j концептуально просто извлекает это значение переменной и отбрасывая его, а разрешения for разрешения просто оставляют условия инициализации, тестирования и/или обновления пустыми, если они вам не нужны. Фактически, for(;;) { означает то же самое, что while(true) {, цикл навсегда... и некоторым людям нравится настраивать макрос,

<pre class="prettyprint linenums">#define EVER ;;</pre> <p> просто чтобы они могли написать cutesy <code>for(EVER) {


Если вы хотите, чтобы

0 1 2 3

1 2 3 4

2 3 4 5

3 4 5 6

Затем следующий код печатает ту же самую вышку

for (i=0;i

licensed under cc by-sa 3.0 with attribution.