2013-07-18 3 views
0

Я хочу скопировать строку (по одной каждой итерации каждой команды) 500x8 matrix в массив temp с именем actual_row. Это то, что я пробовал.Копирование каждой строки матрицы во временный массив

int matrix[500][8]; // this has been already filled by int's 
int actual_row[8]; 
for(int i = 0; i < 500; i++) { 
    for(int j = 0; j < 8; j++) { 
     actual_row[j] = matrix[i][j]; 
     printf("The row is: "); 
     for(int q = 0; q < 8; q++) { 
       printf(" %d ",actual_row[q]); 
     // do other stuff 
     } 
     } 
printf("\n"); 
} 

Это не печатает линии, это печать 0 и 1 в некоторое время, так что есть что-то, что я делаю неправильно.
Спасибо заранее.

ответ

1

Ваша логика немного не. Вам нужно скопировать строку в actual_row, а затем распечатать содержимое. Кроме того, почему бы не просто распечатать содержимое в то время как вы копируете строку матрицы в actual_row:

printf("The row is: "); 
for(int j = 0; j < 8; j++) { 
    actual_row[j] = matrix[i][j];   
    printf(" %d ",actual_row[j]); 
    // do other stuff 
} 

Таким образом, ваш фрагмент кода должен быть таким:

int matrix[500][8]; // this has been already filled by int's 
int actual_row[8]; 
for(int i = 0; i < 500; i++) { 
    printf("The row is: "); 
    for(int j = 0; j < 8; j++) { 
     actual_row[j] = matrix[i][j];   
     printf(" %d ",actual_row[j]); 
     // do other stuff 
    } 
    // <--at this point, actual_row fully contains your row 
printf("\n"); 
} 
1

Ваша логика слегка отключена (нет необходимости в третьем вложенном цикле). Вам нужно скопировать строку actual_row (которые вы сделали) и распечатать содержимое в пределах одного цикла:

printf("The row is: "); 
for(int j = 0; j < 8; j++) { 
    actual_row[j] = matrix[i][j];   
    printf(" %d ",actual_row[j]); 
    // do other stuff 
} 
2

Не печатать actual_row, прежде чем он заполнен полностью:

for(int j = 0; j < 8; j++) { 
    actual_row[j] = matrix[i][j]; 
} 

printf("The row is: "); 
for(int q = 0; q < 8; q++) { 
     printf(" %d ",actual_row[q]); 
     ... 
}