源代码如下:
int sum1(int n);
int sum2(int n);
int sum1(int n)//参数为偶数情况下
{
int sum = 0;
while (n > 0){
sum += n; n -= 2;
}
return sum;
}
int sum2(int n)//参数为奇数情况下
{
int sum = 0;
while (n > 0){
sum += n; n -= 2;
}
return sum;
}
int main()
{
int n = 0;
int(*p[2])(int) = { sum2, sum1 };// 数组指针的格式和初始化 sum1,sum2为函数地址
scanf("%d", &n);
printf("%d\n", p[n % 2](n));//根据输入的值取其中一个函数的地址 n % 2判断奇偶
return 0;
}
突然发现不用函数指针更简单QAQ