任务和代码:求组合数:求组合数公式为:
程序运行结果:
编一程序,输入m和n的值,求组合数。要求分别定义求阶乘和求组合的函数,求组合数的函数调用求阶乘的函数来实现求解,在main()函数中,负责输入输出及调用求组合数的函数。
/*
文件名:main.c
作者:小风景
完成日期:2016.6.21
问题描述:求组合数
程序输出:组合数
*/
#include <stdio.h>
int fact(int n);
int combinations(int m,int n);
//main函数定义的输入输出和调用求组合函数
int main( )
{
int m , n;
printf("请输入需要求组合的两个整数m , n:");
scanf("%d %d",&m,&n);
printf("%d",combinations(m,n));
return 0;
}
//定义求组合函数combinations,其中调用求阶乘函数
int combinations(int m,int n)
{
int mfact = 0;
int nfact = 0;
int mnfact = 0;
int sum = 0;
mfact = fact(m);
nfact = fact(n);
mnfact = fact(m - n);
sum = mfact / (nfact * mnfact);
return sum;
}
//定义求阶乘函数
int fact(int n)
{
int sum = 1;
for(;n > 1;n--)
{
sum = sum * n;
}
return sum;
}
程序运行结果:
总结:这篇文章重要体会函数调用函数的思想,每个函数只完成自己部分的功能,组合函数中需要求阶乘的部分调用求阶乘函数完成。函数中定义的变量最好在定义后完成初始化,以免造成其他的错误。