用C语言求排列组合数
2019-05-31 20:14
585 查看
用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]; }