C语言编程题求大佬帮忙解决一下求代码过程

第12题拜托大佬们了🙏🙏🙏

一个递归函数就可以了。
下面是代码:参数sum传递前必须初始化0。
代码实现原理:通过递归从第n项开始往前累加。

#include<stdio.h>
#include<math.h>
float sumN(int n,float *sum);
int main()
{
    int n;
    float sum=0;//sum必须初始化0
    printf("输入N的值:");
    scanf("%d",&n);
    printf("计算结果:%f\n",sumN(n,&sum));

    return 0;
}
float sumN(int n,float *sum)
{
    if(n>0)
    {
        *sum+=pow(-1,(n-1))*(1.0/n);
        return sumN(--n,sum);
    }
    return *sum;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-09
#include <stdio.h>
#include <conio.h>

int main (void) {
double sum;
int sign = 1; /* 控制正负符号 */
int n;
int i;

sum = 0;
n = 1.0e+4;
for (i=1; i<=n; i++) {
sum += 1.0*sign/i;
sign *= -1;
}
printf ("1 - 1/2 + 1/3 - 1/4 + 1/5 ... 1/%d = %.16lf\n", n, sum);

getch (); /*屏幕暂留*/
return 0;
}

相似回答