为什么错了呀,为什么实际输出是0呀

这是哪里错了呀,为什么实际输出是0呀😭,有没有好人指点指点。

img

img

你这 s int类型不对吧,至少也是 double , double s=0; 后边 s+=1.0/i*x;

img

int main()
{
    int i,x=1;
    double s=0;
    for(i=1;i<=100;i++){
        s+=1.0/i*x;
        x=-x;
    }
  printf("%.3f",s);
    return 0;
 } 

算术运算的规则是从右到左的顺序,程序里面有一个1/ix,由于都是整型(int)的数据,应该1/ix的值一直都是0,所以s进行相加得到和,最后s的值还是0,。
有问题可以私聊哈!

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

你return 0干什么

你用int干什么,不该用float吗

这么写,供参考:

#include <stdio.h>
int main()
{
    /**********Begin***********/
    int    i;
    double s;
    for (i = 1, s = 0; i <= 100; i++)
        i % 2 ? s += 1.0 / i : s -= 1.0 / i;
    printf("%.3f", s);
    /***********End************/
    return 0;
}