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

admin2020-06-16  20

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

例如:m=12,n=8时,运行结果为495.000000。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#iticlude<stdio.h>
float fun(int m,int n)
{

}
main()/*主函数*/
{void NONO();
printf("p=%f\n",fun(12,8));
NONO();
}
void NONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE*fp,*wf;
int i,m,n;
float s;
fp=fopen("in.ctat","r");
wf=fopen("out.dat","w");
for(i=0;i<10;i++){
fscanf(fp,"%d,%d",&m,&n);
s=fun(m,n);
fprintf(wf,"%f\n",s);
}
fclose(fp);
fclose(wf);
}

选项

答案float fun(int m,int n) { float p1=1,p2=1,p3=1; int i; for(i=1;i<=m;i++) p1*=i; for(i=1;i<=n;i++) p2*=i; for(i=1;i<=(m-n);i++) p3*=i; return p1/(p2*p3); }

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

最新回复(0)