代码在C中永远运行 - 我做错了什么?

时间:2016-08-11 18:07:39

标签: c

我想知道为什么在运行此代码时我得到无限输出。这是代码:

#include <stdio.h>

int main(){

    int num;
    printf(" enter a number\n");
    scanf(" %d", &num);
    for( num = 0 ; num <= 10 ; num+=num){
        printf(" %d",num);
    }

    return 0;
}

4 个答案:

答案 0 :(得分:2)

num+= num永远不会递增num。始终将0添加到0num = 0中的for循环覆盖num的用户输入。

答案 1 :(得分:1)

num + = num始终将0添加到0(num),因此num的值永远不会增加。因此,num总是小于10并且循环永远不会退出。

答案 2 :(得分:0)

而num ++将导致num&gt; 0,num += num,初始num = 0得到的是num += 0,循环永远不会达到10.只需使用num++

答案 3 :(得分:0)

int num;
printf(" enter a number\n");
scanf(" %d", &num);
for( num = 0 ; num <= 10 ; num++){
    printf(" %d",num);
    }

num + = num含义为num = num + num,num从0开始,所以num = 0总是这样进入无限循环。改变它num++