for循环遇到的结果算不对

#include<stdio.h>
int main()
{
int n,i=1;
double sum,x;
scanf("%d",&n);
for(i;i<=n+2;i=i+2)
{
x=1.000000/i;
sum+=x;
}
printf("sum = %.6f",sum);
return 0;
}
为什么求1+1/3+1/5……的前n项求和结果不对

是for(i;i<=n*2;i=i+2)吧

#include <stdio.h>
int main()
{
    int n, i = 1;
    double sum, x;
    scanf("%d", &n);
    for (i; i <= n * 2; i = i + 2)//要求前n项之和,就要循环n次,循环次加2,循环条件应该应该是i <= n * 2;
    {
        x = 1.000000 / i;
        sum += x;
    }
    printf("sum = %.6f", sum);
    return 0;
}

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

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

是for(i;i<=n*2-1;i=i+2)吧