如果类型是整数,则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”的名称是什么?
答案 0 :(得分:2)
我假设您正在计算构成数字的数字之和。
问题是您无法初始化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;
}