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

C project, why the output don't come out?

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

#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);
}

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

您认为 dcd 开始时的值为 0 吗?他们不。您需要明确设置它们。

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

如果你不初始化变量,它们里面会有随机垃圾。

考虑这行代码:

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

是你应该看清楚的。您正在 尝试除以 0(d 在第一次迭代中为 0),这会给出未定义的 no 作为输出,以便在您的第一次迭代中与 0.so 进行比较您的代码 crashes.hence 用 1

初始化变量 d

编辑:您的变量在初始化时不一定为 0,但这里就是这种情况。