编程实现现输入n为偶数时,调用函数求1/2+1/4+….1/n,n为奇数时,1/1+1/3+1/5…..1/n,C语言,用指针

如题所述

内容提要:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数) 程序源代码:main()#include "stdio.h"main(){float peven(),podd(),dcall();float sum;int n;while (1){ scanf("%d",&n); if(n>1)  break;}if(n%2==0){ printf("Even="); sum=dcall(peven,n);}else{ printf("Odd="); sum=dcall(podd,n);}printf("%f",sum);}float peven(int n){float s;int i;s=1;for(i=2;i<=n;i+=2) s+=1/(float)i;return(s);}float podd(n)int n;{float s;int i;s=0;for(i=1;i<=n;i+=2) s+=1/(float)i;return(s);}float dcall(fp,n)float (*fp)();int n;{float s;s=(*fp)(n);return(s);}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-06
为什么要用指针。。
这道题。。指针好像没用武之地吧?追问

要求用指针呀

追答

好吧,既然这样要求的话。。


#include<stdio.h>
#include<stdlib.h>
int main()
{
    int n;
    scanf("%d",&n);
    double s=0;
    int j;
    int* i=&j;
    for(*i=2-n%2; *i<=n; *i+=2)
    {
        s+=1.0/(*i);
    }
    printf("%lf",s);
}

追问

8个错>:-<

追答

你看我是可以运行的。。

如果是因为编译器导致出错的话就没有办法了。。最好别用VC。

第2个回答  2015-01-06
double add(int n)
{
double sum=0;
for(int i=2-n%2;i<=n;i+=2)
{
s+=1/i;
}

return s;
}
非得用指针吗?追问

题目要求的。。

题目要求的。。

追答

题目截个图给我看下

追问

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

本回答被网友采纳
相似回答