函数:各个位数字求和
我的思路是:先判断输入的数是几位的数,再除以相应的10的倍数,相加得出结果但是运行不出结果,求大神看看啊!怎么改呢?
#include <stdio.h>
int sum(int n)
{
int num=1,a,sum=0,i,shu=1;
char s;
while((s=getchar())!='\n')
{
num++;
}
for(i=(num-1);i>1;i--)
{
for(int j=1;j<=i;j++)
{
shu*=10;
}
a=n/shu;
n%=shu;
sum+=a;
}
return sum;
}
int main()
{
int n,s;
scanf("%d\n",&n);
s=sum(n);
printf("s=%d\n",s);
return 0;
} 不用这样麻烦,一路模10除10不就得到分离数字了吗 #include <stdio.h>
int sum(int n) {
return n? (n%10) + sum(n/10) : n;
}
int main() {
printf("%d", sum(1234));
} 运行不出结果是指程序一直不结束也不给结果,还是什么都不显示就结束了
如果是前者,可考虑过是走到这里等待你的输入?
while((s=getchar())!='\n')
相当于你要把整数n输入两遍才行,甚至是第二遍只要输入一个位数相同的数都能算。这设计逻辑问题大了
页:
[1]