M078

02-程序修改题 软件154 范金瑞 896浏览

所属年份: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