C语言的那些事——数学分段函数

C语言的那些事——数学分段函数_第1张图片

//函数阶乘计算:当m>n时,值为m!/(n!*(m-n)!);m<=n时,值为0.
#include
float factorial(int a)
{
int i=0;
float value=1;
for(i=1;i<=a;i++)//此处务必注意i要等于a否则计算出的结果是错的
value=value*i;
return value;
}
void main()
{
int m,n;
double factorial_m=0;
double factorial_n=0;
double factorial_mn=0;
double P_mn=0;

printf("请输入m、n的值:\n");
scanf("%d %d",&m,&n);
printf("m=%d,n=%d\n",m,n);
if(m>n&&n>=0)
{
factorial_m=factorial(m);
factorial_n=factorial(n);
factorial_mn=factorial(m-n);
P_mn=factorial_m/(factorial_n*factorial_mn);
}
else 
{
P_mn=0;
}
printf("计算结果为:");
printf("%f\n",P_mn);
}

你可能感兴趣的:(C语言的那些事)