C项目,为什么输出不出来?

时间:2015-03-13 18:44:34

标签: c while-loop output

这个项目应该打印给定数字的除数作为输入,但是循环不会停止,这使我输入数字而不停止。

#include<stdio.h>

int main()

{

    int a,d,cd;

    printf("Insert a number!\n");

    scanf("%d",&a);

    while(a!=d)
    {
        if (a%d==0) cd=cd+1;

        d=d+1;
    }
    printf("The dividers of %d are %d",a,cd);
}

谢谢大家,对不起我的英语不好。

2 个答案:

答案 0 :(得分:3)

您是否期望dcd的值开始为0?他们不。您需要明确设置它们。

int a;
int d = 0;
int cd = 0;

如果你没有初始化变量,它们会随机出现垃圾。

答案 1 :(得分:1)

考虑这行代码:

if (a%d==0) cd=cd+1;

是你应该清楚看到的。你是试图除以0(d在第一次迭代中为0),它给出了未定义的no作为输出,用于在你的第一次迭代中与0.so进行比较时你的代码崩溃。因为初始化变量d为1 < / p>

编辑:初始化时你的变量没有必要变为0,但就是这样的情况。