第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));
}