【发布时间】:2020-09-09 00:16:59
【问题描述】:
因此,对于我的大学实践工作(这些天教授没有回答),我必须用 C 语言编写一个程序,该程序从用户那里接收一个二维数组,然后在其中搜索 3 个或更多零的序列。 例如:
1 1 1 1 0
1 1 1 1 1
1 0 0 0 0
0 1 1 1 0
0 0 0 1 1
应该输出:
no sequence in: 1
no sequence in: 2
Sequence found in: 3 row
no sequence in: 4
Sequence found in: 5 row
我编写了这些简单的循环,但我得到了一些奇怪的输出,这些输出无法引导我进行修复,我的代码是:
int main() {
int array[ROW][COLUMN];
printf("please enter a 5x5 matrix: \n");
for (int i = 0; i < ROW; ++i) {
for (int j = 0; j < COLUMN; ++j) {
scanf("%d", &array[i][j]);
}
}
for (int i = 0; i < ROW; ++i) {
for (int j = 0; j < COLUMN; ++j) {
printf("%d ", array[i][j]);
}
printf("\n");
}
int zero_c = 0;
for (int i = 0; i < ROW; ++i) {
for (int j = 0; j < COLUMN; ++j) {
if (array[i][j] == 0) {
zero_c = 1;
if (array[i][j+1] == 0) {
zero_c = 1;
if (array[i][j + 2] == 0) {
zero_c = 1;
}
}
}else {
zero_c = 0;
}
}
if (zero_c==1) {
printf("Sequence found at: %d row\n ", i + 1);
zero_c = 0;
} else {
printf("no sequence in: %d\n", i + 1);
}
}
return 0;
}
哪些输出:(对于上面显示的相同数组)
Sequence found at: 1 row //(it seems like it always finds a sequence on the first row)
no sequence in: 2
Sequence found at: 3 row
Sequence found at: 4 row
no sequence in: 5
对为什么会发生这种情况有任何想法吗?
【问题讨论】: