C语言入门题目,计算:Cmn=N!/((N-M)!M!)不会打是排列选择的n选m怎么编写程序?我写的怎么不对了?(C语言入门)
答案:3 悬赏:20
解决时间 2021-02-06 03:54
- 提问者网友:放荡不羁
- 2021-02-05 13:51
#include
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);}
最佳答案
- 二级知识专家网友:输掉的尊严
- 2021-02-05 15:11
没读懂你这句“不会打是排列选择的n选m怎么编写程序”,但是你这个程序是对的,有个小问题就是你把 else{ a=fun(m);b=fun(e);c=fun(m);d=b*c;里面的fun(n)改过来就对了
全部回答
- 1楼网友:随心随缘不随便
- 2021-02-05 16:03
int变量范围太小,溢出了
- 2楼网友:荒唐后生
- 2021-02-05 15:55
#include
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);}
我要举报
大家都在看
推荐资讯