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);
}
谢谢大家,对不起我的英语不好。
您认为 d
和 cd
开始时的值为 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,但这里就是这种情况。
这个项目应该打印给定数字的除数作为输入,但是循环没有停止,让我不停地输入数字。
#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);
}
谢谢大家,对不起我的英语不好。
您认为 d
和 cd
开始时的值为 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,但这里就是这种情况。