如果类型是整数,sum的结果是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/