这个项目应该打印给定数字的除数作为输入,但是循环不会停止,这使我输入数字而不停止。
#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);
}
谢谢大家,对不起我的英语不好。
答案 0 :(得分:3)
您是否期望d
和cd
的值开始为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,但就是这样的情况。