作业帮 > 综合 > 作业

C语言:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数时,调用函数1/1+1/3+…

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/14 12:20:32
C语言:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数时,调用函数1/1+1/3+…+1/n(利用指针函数).
#include
void main()
{.
C语言:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数时,调用函数1/1+1/3+…
#include <stdio.h>
float sum1(int n);
float sum2(int n);
void main(){
    int n;
    scanf("%d",&n);
    float (*sum)(int n);
    if (n<1) {
    printf("输入整数不在范围");
    }
    else if(n%2==1){
    sum=sum1;
    printf("%f",sum(n));
    }
    else if(n%2==0){
    sum=sum2;
    printf("%f",sum(n));    
    }
}
float sum1(int n){
    float temp,sum;
    for(int i=1;i<=n;i++){
        if(i%2==1){
        temp=1.0/float(i);
        sum+=temp;
        }
    }
    return sum;
}
float sum2(int n){
    float temp,sum;
    for(int i=1;i<=n;i++){
        if(i%2==0){
        temp=1.0/float(i);
        sum+=temp;
        }
    }
    return sum;
}
//需要自己调试一下,没有上机测试.
再问: void main前面两个float是什么意思? 为什么放在那? →_→ 老师没教过
再答: 你是说前面那两个语句吧,提前声明函数体,相当于在头文件中声明,便于main()引用。
这个是比较基本的,也是有用的,老师应该教的。
可能是我说的不太准确,基本这么个意思。我是自学的,不是老师教的。
我那个函数可能写的不太高效,不过指针基本用法应该就是这个了。