C语言入门题目,计算:Cmn=N!/((N-M)!M!)不会打是排列选择的n选m怎么编写程序?我写的怎么不对了?(C语言入门)
#include<stdio.h>voidmain(){intfun(intn);intm,n,d,b,c,e,a;floats;printf("先输入m,后输入n,用逗...
#include <stdio.h>
void main()
{ int fun(int n);
int m,n,d,b,c,e,a;float s;
printf ("先输入m,后输入n,用逗号隔开");
scanf("%d,%d",&m,&n);e=n-m;
if(m<0||n<0||m>n)
printf("输入错误\n");
else{ a=fun(m);b=fun(e);c=fun(m);d=b*c;
s=a/d;
printf("值为:%f\n",s);}
}
int fun(int n)
{int i,h;
h=1;
for (i=1;i<=n;i++)
h=h*i;
return(h);} 展开
void main()
{ int fun(int n);
int m,n,d,b,c,e,a;float s;
printf ("先输入m,后输入n,用逗号隔开");
scanf("%d,%d",&m,&n);e=n-m;
if(m<0||n<0||m>n)
printf("输入错误\n");
else{ a=fun(m);b=fun(e);c=fun(m);d=b*c;
s=a/d;
printf("值为:%f\n",s);}
}
int fun(int n)
{int i,h;
h=1;
for (i=1;i<=n;i++)
h=h*i;
return(h);} 展开
3个回答
展开全部
#include <stdio.h>
void main()
{
int fun(int n);
int m,n,d,b,c,e,a;float s;
printf ("先输入m,后输入n,用空格隔开");
scanf("%d",&m); scanf("%d",&n);e=n-m;
if(m<0||n<0||m>n)
printf("输入错误\n");
else{ a=fun(n);b=fun(e);c=fun(m);d=b*c;
s=a/d;
printf("值为:%f\n",s);}
}
int fun(int n)
{int i,h;
h=1;
for (i=1;i<=n;i++)
h=h*i;
return(h);}
void main()
{
int fun(int n);
int m,n,d,b,c,e,a;float s;
printf ("先输入m,后输入n,用空格隔开");
scanf("%d",&m); scanf("%d",&n);e=n-m;
if(m<0||n<0||m>n)
printf("输入错误\n");
else{ a=fun(n);b=fun(e);c=fun(m);d=b*c;
s=a/d;
printf("值为:%f\n",s);}
}
int fun(int n)
{int i,h;
h=1;
for (i=1;i<=n;i++)
h=h*i;
return(h);}
追问
谢谢了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int变量范围太小,溢出了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询