c语言 求任意一个整数 各位数之和。。谢谢!

就是随便输入一个整数。。整数位数也是任意的 可以求3位数的 也可以求5为数的。。。反正就是任意整数。。 谢谢!

还有就是。。哈哈 我分不多啦。。

#include<stdio.h>
void main()
{
int n,sum=0;
printf("请输入任意一个整数:");
scanf("%d",&n);
while(n%10)
{
sum+=n%10;
n=n/10;
}
printf("其各个位数之和为%d\n",sum);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-03-31
使用字符串来计算,比较容易。看程序,注意,如果输入数字之外的数,就会出错,本程序没有加入判断输入的字符是否是数字的if语句部分。
void main()
{char a[1111];
char *c=a;
int b=0;
scanf("%s",c);

while(*c!='\0')
{
b=b+(*c-'0');
c++;
}

printf("%d\n",b);
system("pause");
}
第2个回答  2010-03-31
#include<stdio.h>
#include<math.h>
main()
{
long a,b,e;
int c=0,d=0;
scanf("%ld",&a);
b=a;
while(1)
{
b=b/10;
c++;
if(b==0)
break;
}
while(1)
{
e=a/pow(10,c-1);
d=d+e;
a=a-e*pow(10,c-1);
c--;
if(c==1)
{
d=d+a;
break;
}
}
printf("%d\n",d);
getch();
}
从键盘随意输入一个正整数,注意不要超过长整型的范围!
第3个回答  2010-03-31
#include "stdafx.h"
int qh(int n,int m)
{
if (n<10)
return n+m;
return qh(n/10,m+n%10);
}
int main(int argc, char* argv[])
{
int n;
scanf("%d",&n);
printf("%d",qh(n,0));
}
相似回答