3.8 KiB
3.8 KiB
选择结构
-
关系运算符
符号 作用 > 大于 >= 大于等于 < 小于 <= 小于等于 == 等于 != 不等于 -
逻辑运算符
符号 作用 && 逻辑与(且)。两者都为真时,结果才为真,有一个为假,结果为假 || 逻辑或。有一个为真,结果为真,两个都为假时,结果为假 ! 逻辑非(不是)。为真时,取反为假;为假时,非就为真
在C语言中,关系表达式,值为0代表假,非零代表真
关系表达式 | 值 |
---|---|
5 > 0 | 1 |
5 < 3 | 0 |
5 > 0 && 4 > 2 | 1 |
5 > 0 || 5 > 8 | 1 |
!(5 > 0) | 0 |
(a = 3) > (b = 5) | 0 |
x = (10 <= 20) | 1 |
y = (10 >= 20) | 0 |
y = (a = 30) | 30 |
b % 7 == 0 | 0 表示b不能够被7整除,因为余数不为0 |
各种不同运算符之间也是有优先级的,优先级如下,左边最高,右边最低
! > 算术运算符 > 关系运算符 > && > || > 赋值运算符
三目运算符
三目运算符,使用问号和冒号组成,共三个表达式,格式如下
条件 ? 表达式 : 表达式
max = (a > b) ? a : b
// 如果 a > b 为真,则把a的值存入max变量当中,否则就把b的值存入max变量当中
if语句
// if 语句 条件为真则执行括号里面的内容,注意,if不需要分号结尾,如果if里只有一个语句,则可省略大括号
if (条件) {
语句;
}
交换两个变量的值
#include <stdio.h>
int main() {
int a, b, t;
printf("a=");
scanf("%d", &a);
printf("b=");
scanf("%d", &b);
/*
a = b;
b = a;
直接交换的方式,会导致两个变量里存着相同的值,所以在交换时,我们需要对其中一个变量的值做一个值的备份
*/
t = a; // 备份a变量里的值
a = b; // 改变a变量里的值,变为b变量的值
b = t; // 把备份的值在存入b变量当中
printf("交换a b值后:\n")
printf("a=%d\n", a);
printf("b=%d\n", b);
return 0;
}
练习
-
输入三个整数,判断输入的前两个数加起来是否等于第三个数,如果是,则输出yes,否则输出no。
#include <stdio.h> int main() { int a, b, c; scanf("%d%d%d", &a, &b, &c); if (a + b == c) { printf("yes"); } else { printf("no"); } return 0; }
-
输入两个整数,并判断其中一个数是否是另一个数的倍数,如果是,则输出yes,否则输出no。
#include <stdio.h> int main() { int a, b; scanf("%d%d", &a, &b); if (a % b == 0 || b % a == 0) { printf("yes"); } else { printf("no"); } return 0; }
-
输入一个整数,代表年份,判断该年是否为闰年,如果是,则输出yes,否则输出no。(能被4整数,并且不能被100整除,或者能被400整除的年份被称为闰年)
#include <stdio.h> int main() { int year; scanf("%d", &year); if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { printf("闰年"); } else { printf("平年"); } return 0; }