1-1/2+1/3-1/4+1/5-……1/100的求和,我写的怎么输出不了

问题遇到的现象和发生背景

输出结果为空白,请问是哪里写错了

遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
#include 

int main()
{
    double sum = 0;
    int i;
    for (i = 1; i <= 100; i++)
    {
        if (i % 2 == 0)
        {
            i = -i;
        }
        sum = sum + (1.0 / i);
    }
    printf("sum = %lf\n", sum);
    return 0;
}

运行结果及详细报错内容
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
  • 你这里的i是循环判断条件,不要拿来修改,用另一个变量 控制 正负
  • 代码参考如下:

#include <stdio.h>
 
int main()
{
    double sum = 0;
    int i;
    int k = 1;
    for (i = 1; i <= 100; i++)
    {
        if (i % 2 == 0)
        {
            k = -i;
        } else {
            k = i;
        }

        sum += (1.0 / k);
    }
    printf("sum = %lf\n", sum);
    return 0;
}



如有帮助,欢迎点赞+采纳哈!

可以参考如下代码实现。

  • 使用了一个循环来依次计算每一项的值,并将结果加到 sum 变量中。
  • 同时使用一个变量 sign 来存储每一项的符号,并在每次循环时将 sign 的值改为相反的值。
#include <stdio.h>

int main()
{
    double sum = 0;   // 定义变量sum用于存储求和结果
    int sign = 1;     // 定义变量sign用于存储符号(1或-1)
    for (int i = 1; i <= 100; i++)
    {
        sum += sign * 1.0 / i;   // 计算每一项的值,并加到sum中
        sign = -sign;            // 将符号改为相反的值
    }

    printf("1-1/2+1/3-1/4+1/5-……1/100的求和结果为:%.2f\n", sum);  // 输出结果
    return 0;
}