用C语言求排列组合数
#include <stdio.h>
#include <stdlib.h>
double f(int a, int b);//因为排列数可大可小,所以返回值类型应为double//
int main()
{
int a,b;
printf("提醒下标比上标大\n");
printf("请输入排列组合的上标及下标:");
scanf_s("%d %d", &a, &b);
printf("排列组合数=%lf\n", f(a, b));
system("pause");
return 0;
}
double f(int a, int b)
{
double t[3];
int i;
for (i = 0; i <= 2; i++)//每个阶乘都需赋值,要不然自动去负值//
t[i] = 1;
for (i = 1; i<=a; i++)
t[0] *= i;
for (i = 1; i <= b; i++)
t[1] *= i;
for (i = 1; i <= (b-a); i++)
t[2] *= i;
return t[1]/t[2]/t[0];
}