所属年份:2011.3;2011.9;
下列给定程序中,函数fun的功能是:根据整型形参n,计算如下公式的值。
A1=1,A2=1/(1+A1),A3=1/(1+A2),…,An=1/(1+A(n-1))
例如,若n=10,则应输出0.617977。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include <stdlib.h> #include <conio.h> #include <stdio.h> /*************found**************/ int fun(int n) { float A=1; int i; /*************found**************/ for(i=2; i<n; i++) A=1.0/(1+A); return A; } void main() { int n; system("CLS"); printf("\nPlease enter n: "); scanf("%d",&n); printf("A%d=%lf\n",n,fun(n)); }
【参考答案】
(1)float fun(int n) (2)for(i=2;i<=n;i++)
【解题思路】
(1)根据函数的返回值可知,函数应定义为float型。
(2)该题中函数fun的作用是计算数列前n项的和,而数列的组成方式是:第n项的分母是1加第n-1项的值,分子为1,如果循环累加按for(i=2;i