请补充函数fun(),该函数的功能是:计算下面公式的值 (k<50):
例如:当k=5时,s=338.215158。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include<conio.h> #include<stdio.h> double fun(int n) { double s= 【1】 ; double f=0.0; double p=0.0; int i=0; int k; for(k=1; 【2】 ;k++) {f=2*k-1;p=2*k+l;for(i=1;i<2*k+l;i++) f*=2*k-1;for(i=1;i<2*k-1;i++) p*=2*k+1; 【3】 ; } return s; } main() { int k=0; double s; clrscr(); printf("\nPlease input k(k<50):"); scanf("%d",&k); s=fun(k); printf("\nS=%lf",s); }
参考答案:[1] 1 [2] k<=n [3]s*=f/p
解析: 填空1:变量s存放最后的计算结果,由公式可知,计算结果为多个数的乘积,所以s应该初始化为1。填空2: for循环的次数为n,由公式可知,k的取值应该从1到n。填空3:for循环求出的f为(2k-1)2k+l,for循环求出的p为(2k +1)2k-1,由公式可知,每—项即为f/p,所以此处应填s*=f/p。