c语言 求 1-1/2+1/3-1/4+1/5-1/6+ … 的前n项的值

c语言 求 1-1/2+1/3-1/4+1/5-1/6+ … 的前n项的值

问题描述:

求 1-1/2+1/3-1/4+1/5-1/6+ … 的前n项的值
内存限制: 65536 KB
时间限制: 1000 ms
问题描述: 编程:输入一个整数 n , 输出 1-1/2+1/3-1/4+1/5-1/6+ … 的前n项的值 。输出保留小数点后6位。

输入输出举例:

例1:
输入:2
输出:0.500000

例2:
输入:3
输出:0.833333

例3:
输入:100
输出:0.688172
输入: 一个整数
输出: 一个小数(保留小数点后6位)
输入示例: 100
输出示例: 0.688172

#include <stdio.h>
#include <math.h>
main()
{
int n, i;
double sum = 0, fm = 1;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
fm = fm * i;
fm = pow(-1, i + 1) * fm;
sum = sum + 1/ fm;
}
printf("%lf", sum);
}

求大佬修改一下 我这个只能算对例1

#include <stdio.h>
#include <math.h>
int main()
{
int n, i;
double sum = 0, fm = 1;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
    sum+=fm*1.0/i;
    fm*=-1;
}
printf("%lf", sum);
return 0;
}