我想将500x8 matrix
的行(每个团队迭代一行)复制到名为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,所以我做错了。
提前谢谢。
答案 0 :(得分: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]);
...
}
答案 1 :(得分: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 :(得分: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");
}