我想知道怎么用C语言解决输入一个数字求各位数字相加的和

我要详细的最简单的 简单到不用循环写。他上大一呢。只学过do while循环。 我老婆用 我不会C语言 其他的还行。求各位高手帮忙了。、我无语了。
大侠,我说的是让用户输入一个数字 。。。还要最简单的。。。我真的被这个难住了。 大侠们,我说的是用户输入一个数字,然后求出和。她只学了do while循环。唉。我加奖励。。。。 大侠们。。。我真的无奈了。。。。 加奖励上限了。

楼主,不用循环似乎不行,要简单可以使用字符数组来接收输入的数字再求和。
void main()
{
char c[111];
int i=0;
int a=0;
scanf("%s",c);//输入一个数字,在111位之内,还想输入得更大,请把数组改大。

while(c[i]!='\0') //判断是否读到字符串的结尾。
{a=a+(c[i]-'0'); //c[i]指定的字符减去字符'0'就是相关的整型数字,比如
c[i]的字符为1,则'1'-'0'就得到整数1。然后求和。
i++;}
printf("%d",a);
system("pause");
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-25
main( )
{
long a,b,c,d,e,x;
scanf("%ld",&x);
a=x/10000;/*分解出万位*/
b=x%10000/1000;/*分解出千位*/
c=x%1000/100;/*分解出百位*/
d=x%100/10;/*分解出十位*/
e=x%10;/*分解出个位*/
if (a!=0) printf("there are 5, %ld \n",e+d+c+b+a);
else if (b!=0) printf("there are 4,%ld\n",e+d+c+b);
else if (c!=0) printf(" there are 3,%ld\n",e+d+c);
else if (d!=0) printf("there are 2, %ld\n",e+d);
else if (e!=0) printf(" there are 1,%ld\n",e);
}
第2个回答  2019-05-23
#include<stdio.h>
void
main()
{
int
a,b,c,n,sum;
printf("请输入一个3位数:
");
scanf("%d",&n);
a=n/100;
b=n/10%10;
c=n%10;
sum=a*a+b*b+c*c;
printf("该数的3个数字的平方和是:
%d\n",sum);
}
有疑问提出
望采纳
第3个回答  2010-04-25
这个好像复杂了点,不过性能不错,呵呵
#include<stdio.h>
#include<string.h>

int main(){

char *a=(char *)malloc(sizeof(a));
int num;
int sum=0;
int i;
scanf("%s",a);
num=strlen(a);
for(i=0;i<num;i++)
sum+=((int)a[i]-48);
printf("%d",sum);
return 0;
}
第4个回答  推荐于2018-04-21
void main()
{
int num=9876;
int result=0;//记录结果
while(num>0)
{
result += num%10; //让最右面一位相加
num = num/10; //把最右面一位去掉
}
printf("%d",result);
}本回答被网友采纳