我想将500x8matrix的一行(每个团队迭代一行)复制到名为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的某个时间,所以有些事情我做错了。
提前谢谢。

最佳答案

你的逻辑有点不对劲。您需要将行复制到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");
}

关于c - 将矩阵的每一行复制到一个临时数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17726495/

10-12 18:59