把每个整数的各个位数相加,程序找错我找不出来
下列程序的含义是在10个整数中,把每个整数的各个位数相加,例如:有整数1,12,23,34,45,56,67,78,80,90,各个位数相加为81(1+1+2+2+3+3+4+4+5+5+6+6+7+7+8+8+0+9+0),程序中有几处错误,请改正并调试程序。找不出来,小白求答疑啊,是输入的问题吗
#include<stdio.h>
int main()
{
int x,sum,i;
for(i=0;i<10;i++)
{
sum=0;
scanf("%d",&x);
while(x)
{
sum=sum+x%10;
x=x/10;
}
}
printf("sum=%d\n",sum);
}
#include<stdio.h>
int main()
{
int x,sum,i;
sum=0;
for(i=0;i<10;i++)
{
scanf("%d",&x);
while(x)
{
sum=sum+x%10;
x=x/10;
}
}
printf("sum=%d\n",sum);
return 0;
} 同学,sum = 0应放在循环之外。
代码末尾加return 0;
应该就好了。 1.sum的定义放在了循环内,导致每次循环sum都被重新定义
2.题目只是需要个位相加,感觉这个while循环是多余的
#include<stdio.h>
int main()
{
int x,sum,i;
sum=0;
for(i=0;i<10;i++)
{
scanf("%d",&x);
sum=sum+x%10;
}
printf("sum=%d\n",sum);
} 2021年9月12日16:24:03
我 就 看看 大马强 发表于 2021-9-12 15:05
1.sum的定义放在了循环内,导致每次循环sum都被重新定义
2.题目只是需要个位相加,感觉这个while循环是多 ...
同学,是各个位数哦,不是个位{:10_334:} 咳咳咳咳o! 发表于 2021-9-12 16:35
同学,是各个位数哦,不是个位
打扰了,没看到{:10_266:} #include<stdio.h>
int main()
{
int x,sum=0,i;
for(i=0;i<10;i++)
{
scanf("%d",&x);
while(x)
{
sum +=x%10;
x /=10;
}
}
printf("sum=%d\n",sum);
}
页:
[1]