请问,我写的哪里错了

img

img

for(i = 1:i<=n;i+=2)错了,题目要求前n项,例如前3项,应该是 1 1/3 1/5 而不是 1 1/3

修改如下:

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

题主的写法,for(i=1:i<=n;i+=2)循环次数不正确。供参考对照:

#include<stdio.h>
int main()
{
    int i=0, n;
    double s = 0;
    scanf("%d", &n);
    while (i < n)
    {
        s += 1.0 / (2 * i + 1);
        i++;
    }
    printf("Sum = %f", s);
    return 0;
}

for写法:

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

i是分母,不能表示循环次数要在定义一个变量来表示循环次数

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