double 是不能直接用 != 或者 == 的,用误差判别

课后思考题2。 下面的程序运行结果是什么? “! = ”运算符表示“不相等”。 提示: 请上机实
验, 不要凭主观感觉回答。

#include<stdio.h>
int main()
{
    
    
double i;
for(i = 0; i != 10; i += 0.1)
printf("%.1f\n", i);
return 0;
} 
 

在这里插入图片描述

// 死循环, 因为 double 是不能直接用 != 或者 == 的,用误差判别

可以改为

#include<stdio.h>
const double EFS = 0.000001;
int main()
{
    
    
    double i;
    for(i = 0;  i - 10.0 < EFS;  i+=0.1)
        printf("%.1f\n", i);
    return 0;
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_46472395/article/details/113858870