M093

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

所属年份:2012.3

下列给定程序中,函数fun的功能是:求出如下分数列的前n项之和。

和值通过函数值返回main函数。例如,若n=5,则应输出8.391667。

请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include  <stdlib.h>
#include  <conio.h>
#include  <stdio.h>
/*************found**************/
fun (int n)
{
    int a,b,c, k;
    double s;
    s=0.0;
    a=2;
    b=1;
    for(k=1; k<=n; k++)
    {
        /*************found**************/
        s=s+(Double)a/b;
        c=a;
        a=a+b;
        b=c;
    }
    return s;
}
main()
{
    int n=5;
    system("CLS");
    printf("\nThe value of function is:%lf\n",fun(n));
}

【参考答案】

(1)double fun(int n)
(2)s=s+(double)a/b;

【解题思路】
(1)由于返回值是double型的,所以函数要定义为double型。
(2)C语言规定所有关键字都必须用小写英文字母表示,所以s=s+(Double) a/b;应改为s=s+(double) a/b;。