用C语言写题:利用指针函数 输入n为偶数时 调用函数求1/2+1/4+..1/n 当输入n为奇数时 调用1/1+1/3+…1/n 输出计算结果保留两位小数
时间: 2023-11-14 15:07:57 浏览: 157
这是一道利用指针函数的C语言编程题,根据输入的n的奇偶性,调用不同的函数计算并输出结果。当输入n为偶数时,调用pEven函数计算1/2+1/4+...+1/n的和;当输入n为奇数时,调用pOdd函数计算1/1+1/3+...+1/n的和。最后将计算结果保留两位小数输出。
下面是代码实现:
```
#include <stdio.h>
float pEven(int n) //偶数
{
float sum = 0;
for (float i = 2; i <= n; i += 2) {
sum += 1 / i;
}
return sum;
}
float pOdd(int n) //奇数
{
float sum = 0;
for (float i = 1; i <= n; i += 2) {
sum += 1 / i;
}
return sum;
}
float dcall(float (*fp)(int n), int n) //其中float (*p)(int n)是一个指向函数的指针类型,函数的参数是int n,返回值是float
{
float s = fp(n); //相当于调用了第一个函数指针参数指向的函数
return s;
}
int main()
{
int n = 0;
float sum = 0;
while (1) {
scanf("%d", &n);
if (n < 1) break;
else if ((n % 2) == 0) {
printf("Even=");
sum = dcall(pEven, n);
}
else {
printf("Odd=");
sum = dcall(pOdd, n);
}
printf("%.2f\n", sum); //保留两位小数输出
}
return 1;
}
```
阅读全文