经典错误:插入for循环后程序无法运行

来源:互联网 发布:淘宝试用官网 编辑:程序博客网 时间:2024/05/20 04:27

经典错误:插入for循环后程序无法运行

标签:C语言 死循环

by 小威威


本文的目的主要是为大家提供查找问题的思路。
前几日我写了一个程序:

# include <stdio.h>int main(void) {    int N, x, y, m = 0, n = 0, i, h = 0, a[50] = {0};    scanf("%d%d%d", &N, &x, &y);    printf("%d ", x);    for (i = x; i < N; i++) {        if (i == x) continue;        if (a[i] == 0)  m++;        if (m == y) {            a[i] = 1;            printf("%d ", i);            h = i;            m = 0;        }        if (i == N-1) {            i = -1;            for (int j = 0; j < N; j++) {                if (a[j] == 0) n++;            }            if (n < y)                break;        }    }    for (i = h; i < N; i++) {        if (a[i] == 0) printf("%d ", i);    }    return 0;}

运行程序后我输入数据,然而并没有输出。
最奇怪的地方在于连第一个printf都无法输出。
于是我将第一个for循环删去,发现程序正常输出,由此我判断:问题应该是出现在for循环。后经过研究,发现了这个循环是一个死循环,改正错误后程序便正常运行了。

这道题目得到的经验便是:

当一个程序不能正常输出时,有可能是死循环在捣鬼,应该立刻检查本程序中的循环部分。


以上内容皆为本人观点,欢迎大家提出意见,我们一起探讨!

1 0
原创粉丝点击