C语言编程 m和n为两个整数且m大于n求p=m!/(n!(m-n)!) 在下方的空白处填写代码
#include<stdio.h>floatfun(intm,intn){//这是代码填写处}p=1.0*s1/s2/s3;returnp;}main()/*主函数*/{...
#include <stdio.h>
float fun(int m, int n)
{
//这是代码填写处
}
p=1.0*s1/s2/s3;
return p;
}
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.dat","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) ;
}
上面是问题
下面是部分代码:
#include <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.dat","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)
{
//这是代码填写处
}
p=1.0*s1/s2/s3;
return p;
}
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.dat","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) ;
}
上面是问题
下面是部分代码:
#include <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.dat","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) ;
} 展开
1个回答
展开全部
float fun(int m, int n)
{
float p = 0;
long s1=1,s2=1,s3=1;//使用long型存储阶乘数,防止数据过大,内存溢出
int i,j;
if(m > n) //判断m>n,提高程序健壮性
{
for(i = 1; i <= m; i++)//计算m的阶乘
{
s1 *= i;
}
for(i = 1; i <= n; i++)//计算n的阶乘
{
s2 *= i;
}
for(i = 1; i <= (m-n); i++)//计算(m-n)的阶乘
{
s3 *= i;
}
p = 1.0 * s1 / s2 / s3; //计算p=m!/(n!(m-n)!)
return p;
}
else
{
cout << "输入错误!" << endl;
return -1;
}
}
{
float p = 0;
long s1=1,s2=1,s3=1;//使用long型存储阶乘数,防止数据过大,内存溢出
int i,j;
if(m > n) //判断m>n,提高程序健壮性
{
for(i = 1; i <= m; i++)//计算m的阶乘
{
s1 *= i;
}
for(i = 1; i <= n; i++)//计算n的阶乘
{
s2 *= i;
}
for(i = 1; i <= (m-n); i++)//计算(m-n)的阶乘
{
s3 *= i;
}
p = 1.0 * s1 / s2 / s3; //计算p=m!/(n!(m-n)!)
return p;
}
else
{
cout << "输入错误!" << endl;
return -1;
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询