国二题目如下:
编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返
回;n通过形参传入。
1 1 1
S=1 + ── + ─── + … + ──────
1+2 1+2+3 1+2+3+…+n
例如:若n的值为11时,函数的值为:1.833333。
注意:部分原程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
分析:
1.这是一个累加和的过程
2.注意观察分母部分是渐渐的累加和过程
3.因此我们需要设置两个循环变量i,j;
i完成取1-n间的任意数字
j负责完成求1-i之间所有整数的和
代码如下:
/*
编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返
回;n通过形参传入。
1 1 1
S=1 + ── + ─── + ... + ──────
1+2 1+2+3 1+2+3+...+n
例如:若n的值为11时,函数的值为:1.833333。
注意:部分原程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
*/
#include <stdio.h>
float fun(int n)
{
int i,j;
int sum=0;
float result=0.0;
float temp;
for(i=1;i<=n;i++) // 1-n顺序取值 i
{
for(j=1;j<=i;j++) // 求出1-i之间的所有整数和
{
sum+=j;
}
temp=(float)1/sum; // 求出和的倒数
result+=temp; // 累加和
sum=0; // 将sum赋初值0,便于下一次累加和
}
return result; // 返回最终结果
}
void main()
{
int n;
float s;
printf("\nPlease enter N:");
scanf("%d", &n);
s = fun(n);
printf("the result is: %f\n", s);
}
结果为: