huafeng 发表于 2023-11-12 14:54:37

循环


#include<stdio.h>
int main()
{
        int i = 1.0;
        float s = 0;
        while (i <= 5)
        {
                s = s + 1 / i;
                i += 2;
        }
        printf("s=%.2f\n", s);
        return 0;
}
为什么运行出来是1.00

isdkz 发表于 2023-11-12 14:54:44

问题出在这一行代码上:

int i = 1.0;


在C语言中,将浮点数直接赋值给整型变量会导致浮点数部分被截断,因此i的值实际上是1而不是1.0。这会导致循环条件始终为真,因为i的值永远不会大于5。

为了解决这个问题,应该将i的初始值设为1,而不是1.0:

int i = 1;


这样就可以正确地执行循环,得到期望的结果。

jackz007 发表于 2023-11-12 15:06:28

      这一句
                s = s + 1 / i;
      改为
                s = s + 1.0 / i;
页: [1]
查看完整版本: 循环