所属年份:2011.9;2012.3
编写函数fun,其功能是:根据以下公式计算s,并计算结果作为函数值返回,n通过形参传入。
例如:若n的值为11时,函数的值为1.833333
#include <stdio.h> float fun(int n) { } main() { int n; float s; printf("\nPlease enter N:"); scanf("%d", &n); s = fun(n); printf("the result is: %f\n", s); }
【考点分析】
本题考查:计算给定表达式的值,注意变量数据类型及强制转换操作。for循环语句,return语句。
【解题思路】
此类计算表达式值的程序,首先需要根据题意分析表达式的规律,得出通项,然后再完成程序语句。
本题中表达式的规律是1+2+…+n的倒数之和,那么可以通过for循环语句来实现第1项到第n项的变化。
这里其实就是累加算法,方法是先根据题目要求定义变量,注意该变量的数据类型,然后对其进行初始化操作,因为该变量作用是累加器,所以初始值应为0(或0.0,这里根据变量数据类型来确定),再通过for循环语句来完成累加过程。
本题中 t 用来表示每一项的分母,每一项的分母都是由前一项分母加项数(迭代)。注意:由于 t 定义成一个整型,所以在 s=s+1.0/t 中不能把1.0写成1。
【参考答案】
float fun(int n) { int i, t=0; float s=0.0; for(i=1; i<=n; i++) { t = t + i; /* 计算中间表达式 */ s = s + 1.0/t; } return s; }