题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数)。

程序分析:根据输入的 n 的奇偶性,选择调用不同的函数来计算相应的数列和。

实例

#include<stdio.h>
#include<stdlib.h>

double evenSum(int n);
double oddSum(int n);

int main() {
    int n;
    double result;
    double (*sumFunc)(int);
    
    printf("请输入一个数字:");
    scanf("%d", &n);
    
    if (n % 2 == 0)
        sumFunc = evenSum;
    else
        sumFunc = oddSum;
    
    result = (*sumFunc)(n);
    
    printf("%lf\n", result);
    
    system("pause");
    return 0;
}

double evenSum(int n) {
    double sum = 0;
    int i;
    
    for (i = 2; i <= n; i += 2) {
        sum += 1.0 / i;
    }
    
    return sum;
}

double oddSum(int n) {
    double sum = 0;
    int i;
    
    for (i = 1; i <= n; i += 2) {
        sum += 1.0 / i;
    }
    
    return sum;
}

以上实例运行输出结果为:

请输入一个数字:2
0.500000

在上述代码中,我们首先通过 scanf() 函数从用户输入读取一个整数 n

然后,我们声明了两个函数 evenSum()oddSum(),分别用于计算偶数和奇数情况下的数列和。这两个函数接受一个整数参数 n,并返回相应的数列和。

main() 函数中,我们根据输入的 n 的奇偶性,选择调用相应的函数。我们使用一个函数指针 sumFunc 来指向被选择的函数。然后,我们通过 (*sumFunc)(n) 来调用该函数,并将计算结果存储在变量 result 中。

最后,我们使用 printf() 函数输出计算结果。

以上实例运行时,会要求用户输入一个整数 n。如果 n 为偶数,则程序会计算并输出 1/2+1/4+...+1/n 的和;如果 n 为奇数,则程序会计算并输出 1/1+1/3+...+1/n 的和。例如,如果用户输入 2,则程序会输出 0.500000

标签: c语言, c语言教程, c语言技术, c语言学习, c语言学习教程, c语言下载, c语言开发, c语言入门教程, c语言进阶教程, c语言高级教程, c语言面试题, c语言笔试题, c语言编程思想, c语言练习, c语言练习题