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;
}