使用VC++2010打开考生文件夹下progl中的解决方案。此解决方案的项目中包含一个源程序文件progl.c。在此程序中,编写函数fun(),其功能是根据以下公式求p的值,结果由函数值返回。m与n为两个正整数且要求m>n。 例如:m=12,n=8时

admin2023-02-27  65

问题 使用VC++2010打开考生文件夹下progl中的解决方案。此解决方案的项目中包含一个源程序文件progl.c。在此程序中,编写函数fun(),其功能是根据以下公式求p的值,结果由函数值返回。m与n为两个正整数且要求m>n。

  例如:m=12,n=8时,运行结果为495.000000。
  注意:部分源程序在文件progl.c中。
  请勿改动主函数main()和其他函数中的任何内容.仅在函数fun()的花括号中填入你编写的若干语句。
  试题程序:
1 #include<stdio.h>
2 float fun(inL 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<10;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 float fun(int m,int n) 2 { 3 float p1=1,p2=1,p3=1; 4 int i; 5 for(i=1;i<=m;i++) 6 p1*=i; 7 for(i=1;i<=n;i++) 8 p2*=i; 9 for(i=1;i<=(m-n);j++) 10 p3*=i; 11 return p1/(p2*p3); 12 }

解析 本题考查循环的使用。通过3个for循环分别计算阶乘。其中p1=m!,p2=n!,p3=(m-n)!。
转载请注明原文地址:https://kaotiyun.com/show/6J0D777K
0

相关试题推荐
最新回复(0)