如果类型为整数,则求和的结果为0,为什么呢?
main(){
int n,s=0;
float a;
printf("Input a integer number: ");
scanf("%d",&n);
while(a!=0){
a=n%10;
s=s+a;
n=n/10;
}
printf("Sum: %d",s);
getch();
}
对不起,我的英文,非常感谢!
您能告诉我这个英文名字是什么吗?例如:“ 12345”是一个数字,那么“ 1,2,3,4,5”的名字是什么?
最佳答案
我假设您正在计算组成一个数字的数字总和。
问题是您无法初始化a
。如果碰巧获得了0
的初始值,则while循环中的代码将永远不会执行。
另外,条件是错误的,您应该改为在n
上进行测试。考虑如果输入101
将会发生什么。您当前的代码将停止,然后到达0
,并输出1
而不是2
。
因此,如果我们解决问题:
int main() {
int n,s=0;
int a;
printf("Input a integer number: ");
scanf("%d",&n);
while (n!=0) {
a=n%10;
s=s+a;
n=n/10;
}
printf("Sum: %d",s);
getch();
return 0;
}
关于c - 为什么在此代码中必须使用float而不是int?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26797845/