C语言例3-18:使用关系表达式的例子

关系表达式的一般形式:

        表达式  关系运算符 表达式    

最初代码如下:

#include<stdio.h>
int main(void)
{
	int i=3,j=4,k=5;
	float f1=1.0, f2=2.1;
	char c1='a', c2='d';                      //'a'(97)     'd'(100)
	
	printf("i>j  的结果为:  %d\n",i>j);        //0
	printf("f1<f2  的结果为:  %d\n",f1<f2);    //1 
	printf("c1==c2  的结果为:  %d\n",c1==c2);  //0
	printf("\n");
	printf("c1>=i  的结果为:  %d\n",c1>=i);    //1
	printf("c2<=f1  的结果为:  %d\n",c2<=f1);  //0
	printf("c1!=k  的结果为:  %d\n",c1!=k);    //1
	printf("\n");
	printf("i<j<k  的结果为:  %d\n",i<j<k);    //1<k  1
	printf("i>j!=k  的结果为:  %d\n",i>j!=k);  //0!=k   1
	printf("i==j!=k>j>=i  的结果为:  %d\n",i==j!=k>j>=i);   
		//(i==j)!=((k>j)>=i)  -->  0!=(1>=i)  -->0!=0   -->0
	printf("i<j<=k!=i==i  的结果为:  %d\n",i<j<=k!=i==i);   
		//(((i<j)<=k)!=i)==i   -->((1<=k)!=i)==i -->  (0!=i)==i  -->  1==i  --> 0
	
	return 0;
}

结果如下:

警告处理:

1. 初始化浮点类型变量警告

        浮点数是按照double型运算,在运算过程中会自动转换成double

        后缀f或者F

        更改代码为:

float f1=1.0f, f2=2.1f;

2. 不能使用连续比较,bool数据类型不安全

①i<j<k 更改为

i<j&&j<k

②i==j!=k>j>=i   更改为

i==j!=k>j&&j>=i

③i<j<=k!=i==i   更改为

i<j&&j<=k!=i==i

优化后代码:

#include<stdio.h>
int main(void)
{
	int i=3,j=4,k=5;
	float f1=1.0f, f2=2.1f;
	char c1='a', c2='d';                      //'a'(97)     'd'(100)
	
	printf("i>j  的结果为:  %d\n",i>j);        //0
	printf("f1<f2  的结果为:  %d\n",f1<f2);    //1 
	printf("c1==c2  的结果为:  %d\n",c1==c2);  //0
	printf("\n");
	printf("c1>=i  的结果为:  %d\n",c1>=i);    //1
	printf("c2<=f1  的结果为:  %d\n",c2<=f1);  //0
	printf("c1!=k  的结果为:  %d\n",c1!=k);    //1
	printf("\n");
	printf("i<j<k  的结果为:  %d\n",i<j&&j<k);    //1<k  1
	printf("i>j!=k  的结果为:  %d\n",i>j!=k);  //0!=k   1
	printf("i==j!=k>j>=i  的结果为:  %d\n",i==j!=k>j&&j>=i);   
		//(i==j)!=((k>j)>=i)  -->  0!=(1>=i)  -->0!=0   -->0
	printf("i<j<=k!=i==i  的结果为:  %d\n",i<j&&j<=k!=i==i);   
		//(((i<j)<=k)!=i)==i   -->((1<=k)!=i)==i -->  (0!=i)==i  -->  1==i  --> 0
	
	return 0;
}

相关推荐

  1. C语言3-38:强制类型转换例子

    2024-03-15 15:12:01       45 阅读
  2. C语言3-37:赋值类型转换例子

    2024-03-15 15:12:01       39 阅读
  3. C语言3-40:减少不必要数据类型转换例子

    2024-03-15 15:12:01       47 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-15 15:12:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-15 15:12:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-15 15:12:01       87 阅读
  4. Python语言-面向对象

    2024-03-15 15:12:01       96 阅读

热门阅读

  1. Spring集成hazelcast实现分布式缓存

    2024-03-15 15:12:01       34 阅读
  2. TypeScript之类型推断

    2024-03-15 15:12:01       43 阅读
  3. sobel算子详解

    2024-03-15 15:12:01       45 阅读
  4. PCL_Write

    PCL_Write

    2024-03-15 15:12:01      40 阅读
  5. 用 C# 自己动手编写一个 Web 服务器

    2024-03-15 15:12:01       42 阅读
  6. 如何将服务器数据迁移到另一台服务器?

    2024-03-15 15:12:01       38 阅读
  7. flask库

    flask库

    2024-03-15 15:12:01      52 阅读
  8. Hive实现查询左表有右表没有的记录

    2024-03-15 15:12:01       39 阅读