C语言编程题 计算并输出 m!/[(m-n)!n!]

(1)编制一个函数pq(n),返回n!值。
(2)在main函数中,从键盘输入m与n,调用函数pq计算。
(3)在main函数中,输入m与n之前要有提示,并检查输入数据的合理性(m≥n≥O),对于不合理的输入,应输出出错信息,不再进行计算。
(4)采用程序改错题的的编码风格对源代码做注释

#include <stdio.h>
int fact(int n);
int c(int m,int n);
/*主函数*/
main()
{
int m,n;
printf("please enter m,n m>n");
scanf("%d%d",&m,&n);
if (m>=n && n>=0)
printf("%d",c(m,n));
else
printf("wrong input!");
}
/*求阶乘*/
int fact(int n)
{
if (n==0)
return 1;
if (n==1)
return 1;
return n*fact(n-1);
}
/*求组合数*/
int c(int m,int n)
{
return fact(m)/(fact(m-n)*fact(n));
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-03
#include<stdio.h>
int pq(int n)//计算n的阶乘
{
int temp=1;
while(n>=1)
{
temp=temp*n;
n--;
}
return temp;
}
void main()
{
int m,n;
printf("please input m:");
scanf("%d",&m);
printf("please input n:");
scanf("%d",&n);
if(m>=n&&n>=0)//判断输入格式,并进行计算
{
printf("m!/[(m-n)!n!]=%d\n",pq(m)/(pq(m-n)*pq(n)));
}
else//出错提示
{
printf("error input!\n");
}

}本回答被网友采纳
相似回答