2.按要求编写程序:
(1)定义函数total(n)计算1+2+……+n,函数的返回值是int。
(2)定义函数main(),输入正整数n,计算并输出下列算式的值,要求调用函数total(n)计算1+2+……+n。
参考程序:
#include <stdio.h>
I(1)nt total(int n)
{
int i,sum=0;
for(i=1;i<=n;i++)
sum+=i;
return sum;
}
(2)main()
{
int i,n,m;
double sum=0;
while(scanf("%d",&n),n<=0);
for(i=1;i<=n;i++)
{
m=total(i);
sum+=1.0/m;
}
printf("sum=%f\n",sum);
}
我觉得这个题目的答案好像有问题,我觉得倒数第五行的m=total(i)应该改为m=total(n),因为当我们输入一个n的整数时,应该按照n的值来确定和,i是一个变量,请问我的想法对吗?
应该与题目要求有关系吧,要求(2)中”计算并输出下列算式的值“,算式是怎样的?
如果算式是计算1/1+1/3+1/6+......1/m,那么就使用m=total(i)。
如果使用m=total(n),那就是计算1/m+1/m+1/m+......+1/m了。
如果算式是计算1/1+1/3+1/6+......1/m,那么就使用m=total(i)。
如果使用m=total(n),那就是计算1/m+1/m+1/m+......+1/m了。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2014-04-23
while(scanf("%d",&n),n<=0);
m=total(n);
安照题意直接就完了,答案是 sum(1/sum(1到 i))
m=total(n);
安照题意直接就完了,答案是 sum(1/sum(1到 i))
第2个回答 2014-04-23
你再认真看看题目