所属年份: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)语法错误。