浮点数循环控制变量
循环控制变量也可以是一个浮点数类型的变量。
例如汇总 1/1 ~ 1/10 的分数:
#include <stdio.h>
int main(void)
{
double sum = 0.0;
for(double x = 1.0; x < 11; x += 1.0)
sum += 1.0 / x;
printf("%lf", sum);
return 0;
}Code language: HTML, XML (xml)
这种情况不常见。
注意,分数值通常没有浮点数形式的精确表示,所以不应该把相等判断作为结束循环的条件。
例如,下面这个循环是为了输出 0.0 到 2.0 之间的 x 值,其步长是 0.2,所以应该有 11 行输出。但是 0.2 没有浮点数形式的二进制精确表示,所以这个循环会让计算机一直执行下去。在 Windows 下面可以 Ctrl+C 停止。
#include <stdio.h>
int main(void)
{
for(double x = 0.0; x != 2.0; x += 0.2)
printf("%lf\n", x);
return 0;
}Code language: PHP (php)