循环
#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 问题出在这一行代码上:
int i = 1.0;
在C语言中,将浮点数直接赋值给整型变量会导致浮点数部分被截断,因此i的值实际上是1而不是1.0。这会导致循环条件始终为真,因为i的值永远不会大于5。
为了解决这个问题,应该将i的初始值设为1,而不是1.0:
int i = 1;
这样就可以正确地执行循环,得到期望的结果。 这一句
s = s + 1 / i;
改为
s = s + 1.0 / i;
页:
[1]