用c语言编写一个函数,输入大于1的整数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数 求1/1+1/3+...+1/n(要求利用函数指针编程) 输入格式:"%d" 偶数输出:"Even=%f" 奇数输出:"Odd=%f"
时间: 2024-02-25 12:54:57 浏览: 56
这个问题已经在之前的提问中问过了,我已经给出了满足要求的代码,以下是代码实现:
```c
#include <stdio.h>
double sum_even(int n) {
double sum = 0;
for (int i = 2; i <= n; i += 2) {
sum += 1.0 / i;
}
return sum;
}
double sum_odd(int n) {
double sum = 0;
for (int i = 1; i <= n; i += 2) {
sum += 1.0 / i;
}
return sum;
}
void sum(int n, double (*func)(int)) {
double res = func(n);
if (n % 2 == 0) {
printf("Even=%.4f", res);
} else {
printf("Odd=%.4f", res);
}
}
int main() {
int n;
scanf("%d", &n);
if (n % 2 == 0) {
sum(n, sum_even);
} else {
sum(n, sum_odd);
}
return 0;
}
```
这个程序中,我们定义了两个求和函数 `sum_even` 和 `sum_odd`,分别用于计算偶数情况和奇数情况下的求和结果。然后我们定义了一个 `sum` 函数,它接收一个整数和一个函数指针作为参数,根据整数的奇偶性调用不同的函数,并输出结果。最后在 `main` 函数中读入一个整数,判断它的奇偶性,然后调用 `sum` 函数来计算并输出结果。
阅读全文