编写函数fun,其功能是:根据以下公式求P的值,结果由函数值带回。m与n为两个正整数且要求m>n。 例如:m=12,n=8时,运行结果为495.000000。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何

admin2016-12-06  29

问题 编写函数fun,其功能是:根据以下公式求P的值,结果由函数值带回。m与n为两个正整数且要求m>n。

  例如:m=12,n=8时,运行结果为495.000000。
  注意:部分源程序在文件PROG1.C中。
  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
    试题程序:
1  #include<stdio.h>
2  float fun(int m,int n)
3    {
4
5    }
6  main()/*主函数*/
7   {void NONO();
8   printf(’’p=%f\n’’,fun(12,8));
9    NONO();
10   }
11   void NONO()
12  {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
13    FILE*fp,*wf;
14    int i,m,n;
15    float s;
16    fp=fopen(’’in.dat’’,’’r’’);
17    wf=fopen(’’out.dat’’,’’w’’);
18    for(i=0 ; i<1 0;i++){
19    fscanf(fp,’’%d,%d’’,&m,&n);
20    s=fun(m,n);
21    fprintf(wf,’’%f\n’’,s);
22   }
23  fclose(fp);
24   fclose(wf);
25   }

选项

答案1 long jc(int m) 2 { 3 long s=1 ; 4 int i; 5 for(i=1 ; i<=m;i++)s=s*i; 6 return s; 7 } 8 float fun(int m,int n) 9 { 10 float p; 11 p=1.0*jc(m)/jc(n)/jc(m-n); 12 return p; 13 }

解析 本题考查算术运算的算法,先建立一个jc函数来计算m的阶乘,函数中使用一个for循环来计算m的阶乘,并将计算结果作为函数的返回值。在fun函数中调用jc函数,来计算三个阶乘的除法。
转载请注明原文地址:https://kaotiyun.com/show/INDp777K
0

最新回复(0)