本人初学,还望高人高抬贵手指点一番
题主考虑的太复杂了,这么写,供参考:
#include <stdio.h>
int main()
{
int i;
double s = 0;
for (i = 1; i <= 100; i++)
i % 2 ? s += 1.0 / i : s -= 1.0 / i;
printf("S = %f", s);
return 0;
}
for里面的a初始化好像应该是0
int m=0;
修改为
double m=0;
m=1/i;
修改为
m=1.0/i;
否则是整除,永远是0
除了上面的方法之外,我们可以用(-1)的次方来产生正负号,经过观察,我们发现,只需要在每次循环到i时,在每个加数的前面乘上一个(-1)的i+1次方
,这样就可以实现奇数分母为正,偶数分母为负的效果。
但需注意的是,次方的使用需要用到pow()函数,它包含在math.h中,需要在include一下这个头文件。
pow()函数:pow(a,b);
表示a的b次方。
代码如下:
int main()
{
int i = 0;
double ret = 1.0;
double sum = 0.0;
for (i = 1; i < 101; i++)
{
ret = (pow(-1, i + 1)) / i;
sum += ret;
}
printf("结果为 %lf\n", sum);
}
运行结果: