编写一个函数 int sum(int n),求任意一个正整数的各位数字之和;再编写一个程序调用sum函数

分别输出50~60之间所有数的各位数字之和

第1个回答  2011-12-08
#include<stdio.h>

int sum(int n)
{
int s=0;
while(n)
{
s+=n%10;
n/=10;
}
return s;
}

int main(void)
{
int s=0;
for(int i=50;i<=60;i++)
s+=sum(i);
printf("%d\n",s);
}追问

,谢谢啊,题目的意思是要求输出: 50的各位数字之和是:5
51的各位数字之和是:6
52的各位数字之和是:7
53的各位数字之和是:8
54的各位数字之和是:9
55的各位数字之和是:10
56的各位数字之和是:11
57的各位数字之和是:12
58的各位数字之和是:13
59的各位数字之和是:14
60的各位数字之和是:6
Press any key to continue

追答

#include

int sum(int n)
{
int s=0;
while(n)
{
s+=n%10;
n/=10;
}
return s;
}

int main(void)
{
for(int i=50;i<=60;i++)
printf("%d的各位数字之和是:%d\n",i,sum(i));
}

本回答被提问者采纳
第2个回答  2011-12-08
#include <stdio.h>
#include <math.h>
#include <string.h>

int sum(int n)
{
int i, add = 0;
int a, len;
char str[10];

sprintf(str, "%d", n);
len = strlen(str);

for (i = 0; i < len; i++)
{
a = str[i] - 48;
add += a;
}
return add;
}
int main()
{
int i = 50;
int add = 0;

while(i <= 60)
{
add += sum(i);
i++;
}
printf("%d", add);

return 0;
}追问

谢谢啊,题目的意思是要求输出: 50的各位数字之和是:5
51的各位数字之和是:6
52的各位数字之和是:7
53的各位数字之和是:8
54的各位数字之和是:9
55的各位数字之和是:10
56的各位数字之和是:11
57的各位数字之和是:12
58的各位数字之和是:13
59的各位数字之和是:14
60的各位数字之和是:6
Press any key to continue

第3个回答  2011-12-08
#include <CONIO.H>

int sum(int n)
{
return ((n < 10) ? n : (n%10 + sum(n/10)));
}

int main(int argc, char* argv[])
{
for(int i = 50; i <= 60; i++)
{
printf("%d sum is %d. \n", i, sum(i));
}

getch();
return 0;
}
相似回答