用c语言编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数 求1/1+1/3+...+1/n(要求利用函数指针编程)
时间: 2025-02-22 17:30:44 浏览: 62
在C语言中,我们可以使用函数指针来实现这个功能。首先,我们需要声明两个函数,分别对应于处理偶数和奇数的情况。然后,我们创建一个函数指针变量,用于指向这两个函数中的任何一个。下面是一个示例:
```c
#include <stdio.h>
// 函数声明,用于计算从1到n的倒数之和
double sum_even(int n);
double sum_odd(int n);
// 函数指针类型定义
typedef double (*SumFunction)(int n);
// 主函数
void calculate_sum(int n, SumFunction func) {
if (n % 2 == 0) { // 如果n是偶数
printf("For even number %d:\n", n);
printf("%.2f\n", func(n)); // 调用函数指针处理偶数情况
} else { // 如果n是奇数
printf("For odd number %d:\n", n);
printf("%.2f\n", func(n)); // 调用函数指针处理奇数情况
}
}
// 实现函数,处理偶数情况
double sum_even(int n) {
double total = 0;
for (int i = 2; i <= n; i += 2) {
total += 1.0 / i;
}
return total;
}
// 实现函数,处理奇数情况
double sum_odd(int n) {
double total = 1.0;
for (int i = 1; i <= n; i += 2) {
total += 1.0 / i;
}
return total;
}
int main() {
int num;
printf("Enter a number: ");
scanf("%d", &num);
// 创建函数指针并分配给对应的函数
SumFunction function_ptr;
if (num % 2 == 0)
function_ptr = sum_even;
else
function_ptr = sum_odd;
calculate_sum(num, function_ptr); // 调用主函数
return 0;
}
```
阅读全文
相关推荐



















