可用嵌套调用
利用定义函数求s1=C(n,2)+C(n,4)+……+C(n,n),s2=C(n,1)+C(n,3)+……+C(n,n-1) (组合问题,s1为偶数和,s2为奇数和)
#include<stdio.h>
float c(int n, int m); //对c函数作声明
int g(int n); //对g函数作声明
float c(int n, int m) //定义c函数
{
float s; //声明部分
s=g(n)/(g(m)*g(n-m)) ; //执行部分
return(s);
}
int g(int n) //定义g函数
{
int i, p; //声明部分
p=1; //执行部分
for(i=1;i<=n;i++) // n的阶层
p*=i;
return(p);
}
main()
{
int n, i=1;
int s1=0, s2=0; // s1为偶数的组合之和,s2为奇数的组合之和
printf("输入n:");
scanf("%d", &n);
for(i;i<=n;i++) //对输入的数进行循环
{
if(i%2==0) //判断是否为偶数
s1+=c(n,i);
else
s2+=c(n,i);
}
printf("s1=%d, s2=%d",s1, s2); //输出s1,s2
}
例输入n=6,
输出:s1=31,s2=32