解析:
使用逻辑运算符& & 和II的时候注意一些较为特殊的属性。由& & 和II连接的表达式按从左到
右的顺序进行求值,并且,在知道结果值为真或为假后立即停止计算。
eg:
#include <stdio.h>
#include <math.h>
#include<stdlib.h>
int main()
{
int x = 25, y = 25 , z = 30;
float f = 25.095, h = 25.095;
printf("*************************************\n");
printf("** This is a logical calculator: **\n");
printf("*************************************\n");
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");
if ( f == 25.095)/*浮点数比较,注意计算机中的浮点变量的非精确表示*(浮点数的比较方法不正确)*/
printf("f == 25.095\n");
else printf("f != 25.095\n");
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");
scanf("%d",x);
system("pause");
return 0;
}
归纳总结
1)关系运算符“==”与赋值运算符“=”别写错
2)对于浮点数的判断问题