问题及代码:
/*
实例4:逻辑运算符计算器
*/
#include<stdio.h>
#include<math.h>
int main()
{
int x=25,y=25,z=30;
float f=25.095,h=25.095;
if(x==y)
printf("x==y\n");
else
printf("x!=y\n");
if(x!=z)
printf("x!=z\n");
else
printf("x==z\n");
if(x==f)
printf("x==f\n");
else
printf("x!=f\n");
if(f==h)
printf("f==h\n");
else
printf("f!=h\n");
/*fabs()求浮点数绝对值函数,判断浮点数相等时,
f不等于25.095,而是25.0949999,因此测试浮点数相等时不要使用“==”运算符,
而应该测试其与某个浮点值的差值范围*/
if(fabs(f-25.095)<=0.0001)
printf("f==25.095\n");
else
printf("f!=25.095\n");
if((x!=y)&&(f!=h))
printf("x!=y and f!=h\n");
else if((x!=z)||(h!=z))
printf("x!=z or h!=z\n");
return 0;
}
总结重点:
判断浮点值是否相等时时,用fabs()。
为了显示%符号,需要用两个%。