罗罗隆亚-索隆 发表于 2021-5-28 23:03:24

一个C程序为什么运行结果为-inf

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

        return 0;
}
为什么运行结果为-inf

最强废铁h 发表于 2021-5-29 00:12:13

i的初始值为0,不能作为分母

做最好的自己520 发表于 2021-5-29 00:30:30

#include <stdio.h>

int main()
{
        int i = 0;
        int flag = 0;
        double sum = 0;
       
        for(i = 1 ;i <= 100 ;i++)//这里i初始化不能为0,否者会出错误!
        {
                if(i % 2 == 0)
                {
                        flag = 0;
                }
                if(i % 2!= 0)
                {
                        flag = 1;
                }
               
                sum = sum + flag * 1.0 / i;
        }
        printf("%lf\n",sum);
       
        return 0;
}

运行结果为:2.937775
i 初始化不能为0,第一次初始化计算为0计算机就不知道怎么运行了,所以就出错

万千只cnm 发表于 2021-5-29 02:00:42

sum += flag * 1.0 / i;
0不能分母
页: [1]
查看完整版本: 一个C程序为什么运行结果为-inf