判断 大小关系 等于关系
> 大于
< 小于
<= 小于等于
>= 大于等于
== 等于
!= 不等于
关系表达式
5 > 2; 在C语言中称之为 真(成立)
2 == 5; 在C语言中称之为 假(不成立)
*对于关系表达式,最终也是有结果数据
5 > 2; //1 2 == 5; //0
关系表达式运算结果:
1表示真 0表示假
需求: 验证关系表达式的结果
成立 1 不成立 0
分析: 将成立的关系表达式结果数据赋值给变量
不成立的关系表达式结果数据赋值给另外一个变量
别打印这两个变量
对于数据怎么判断真假?对于数据而言非零即真
1、a > b;若a = 3,b = 2;表达式的值为:1
2、b + c < a,若 a = 3,b = 4,c = 5;则表达式的值:0
b + (c < a),若 a =3,b = 4,c = 5;则表达式的值: 4
3、(a > b) == c;若a = 3,b = 2,c = 1,则表达式的值: 1
4、(c == 5) > a > b,若a = 3,b = 2,c = 1,则表达式的值为: 0
关系运算符的优先级
*①> < >= <= 优先级相同
② == != 优先级相同
① 高于 ②的优先级
注意:算数运算符的优先级高于关系运算符
关系表达式都是有结果数据,成立就为1,不成立就为
如何判断数据真假? 非零即真
逻辑运算符 并且 逻辑与 &&
或者 逻辑或 ||
非 逻辑非 !
逻辑运算符的使用
逻辑与: 符号: && 格式: 表达式1 && 表达式2;
表达式1 && 表达式2 && 表达式3;
....
规则:全真为真,有假为假
原理:先计算表达式1的值,并判断真假
如果表达式的值为假,则不再执行表达式2
如果表达式的值为真,则计算表达式2的值并判断真假
如果表达式2的值为真, 则整个逻辑表达式为真
如果表达式2的值为假,则整个逻辑表达式为假
逻辑表达式的值: 真 1 假 0
验证逻辑表达式的值
int n;
int m;
int q;
int f;
n = (5 > 2 && 4 > 3); // 1
m = (5 == 2 && 5 ==4) ; // 0
q = (5 > 2 && 5 ==4) ; // 0
f = (4 && 5 > 2); // 1
printf("n:%d\n",n);
printf("m:%d\n",m);
printf("q:%d\n",q);
printf("f:%d\n",f);
思考:
int a = 10, b = 20,c = 60, d = 70,m;
m = (a = a>b) && (c = 60 < d);
a: 0
b: 20
c: 60//如果表达式的值为假,则不再执行表达式2
d: 70
m: 0
--------------------------------------------
int a = 10, b = 20,c = 60, d = 70,m;
m = (a = a<b) && (c = 60 < d);
a: 1
b: 20
c: 1
d: 70
m: 1
逻辑或:符号:|| //或者
格式: 表达式1 || 表达式2;
规则: 有真为真,全假为假
原理: 先计算表达式1的值,并判断真假
如果表达式1的值为真,则不再执行表达式2,逻辑表达式整体为真
如果表达式1的值为假,则计算表达式2的值并判断真假
如果表达式2的值为真,则逻辑表达式整体为真
如果表达式2的值为假,则逻辑表达式整体为假
int n;
int m;
int r;
n = (5 > 2 || 4 > 3); //1
r = (5 < 2 || 4 > 3); //1
q = (5 > 2 || 4 < 3); //1
m = (5 == 2 || 5 ==4); //0
printf("n:%d\n",n);
printf("r:%d\n",r);
printf("q:%d\n",q);
printf("m:%d\n",m);
int a = 10, b = 20,c = 60, d = 70,m;
m = (a = a>b) || (c = 60 < d);
a: 0
b: 20
c: 1
d: 70
m: 1int a = 0;
if(a || a > 5 && (a = 3))
{
printf("成立\n");
}
else
{
printf("不成立\n");
}
逻辑非:符号:!
格式: !表达式
规则: 真变假 假变真
原理: 计算出表达式的值并判断真假
如果为真,则逻辑表达式的值为假
如果为假,则逻辑表达式的值位真
int a;
int b;
int c;
a = !10; // 0
b = !0 - 1; // 0
c = !(2+3); // 0
printf("%d %d %d\n", a, b, c);
需求:用户输入一个年份,判断是否是闰年
①能被400整除的就是闰年
②能被4整除但不能被100整除就是闰年
分析:用户输入 scanf 函数
打印 printf函数
多个条件 逻辑运算符
如果(能被400整除就是闰年 || (能被4整除 && 不能被100整除) )
{
打印该年份是闰年;
}
否则
{
打印该年份是平年
}
整除用 %
思路:
//提示用户输入一个年份
//用scanf输入
if(能被400整除就是闰年 || (能被4整除 && 不能被100整除) )
{
打印是闰年
}
else
{
打印是平年
}
#include "stdio.h"
int main(void)
{
int year;
printf("请输入一个年份:例如2022\n");
scanf("%d",&year);
if((year % 400 == 0) || (year % 100 != 0))
{
printf("闰年\n");
}
else
{
printf("平年");
}
}