AC代码:
/*《C语言程序设计》江宝钏主编-习题6-3-倒数数列
Description
编写程序计算并输出
s=∑k=1n 1/k=1+1/2+1/3+............+1/n 的值。 //此处为∑k从1到n
要求定义并调用函数total(n)计算1+1/2+1/3+......+1/n
注意:此题的main函数如下所示:
int main(){
int n;
scanf("%d",&n);
printf("%.3lf\n",total(n));
return 0;
}
Input
正整数n,表示前n项求和
Output
s,表示前n项的和
Sample Input Copy
2
Sample Output Copy
1.500
HINT
函数原型double total(int n)
1/2=0 1.0/2=0.5
*/
#include <stdio.h>
#include <math.h>
double total(int a);
int main(){
int n;
scanf("%d",&n);
printf("%.3lf\n",total(n));
return 0;
}
double total(int x){
double i,sum;
for(i=1;i<=x;i++){ //警告:此循环中i必须定义为double型,且必须定义在for循环之外,不能在里面定义(否则会出现编译出错),因为不管是float,还是double,都不能够精确的保存。
sum+=1/i; //因为该计算式中两个变量类型定义必须一致。故i也必须定义为double型。
}
return sum;
}
//标程:
#include <stdio.h>
double total(int n);
int main()
{
int n;
scanf("%d",&n);
printf("%.3lf\n",total(n));
return 0;
}
double total(int n)
{
double i,sum;
for (i=1;i<=n;i++)
{
sum+=1/i;
}
return sum;
}