M097

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

所属年份:2012.3;

下列给定程序中,函数fun的功能是:求S的值。
S=(22/(1×3))×(42/(3×5))×(62/(5×7))×…×(2k)2/((2k-1)×(2k+1))
例如,当k为10时,函数的值应为1.533852。

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

#include  <stdlib.h>
#include  <conio.h>
#include  <stdio.h>
#include  <math.h>
/*************found**************/
fun(int k)
{
    int n;
    float s, w, p, q;
    n=1;
    s=1.0;
    while(n<=k)
    {
        w=2.0*n;
        p=w-1.0;
        q=w+1.0;
        s=s*w*w/p/q;
        n++;
    }
    /*************found**************/
    return s
       }
       void main()
{
    system("CLS");
    printf("%f\n ",fun(10));
}

【参考答案】

(1)double fun(int k)
(2)return s ;

【解题思路】
(1)此处为函数定义错误,根据返回值的类型可知函数类型标识符应为double。
(2)语法错误。