用C语言求排列组合数

用C语言求排列组合数

#include 
#include 

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];
}

你可能感兴趣的:(C基础)