24_grade_C/笔记/第四课.md
2025-03-16 20:51:38 +08:00

3.8 KiB
Raw Blame History

选择结构

  1. 关系运算符

    符号 作用
    > 大于
    >= 大于等于
    < 小于
    <= 小于等于
    == 等于
    != 不等于
  2. 逻辑运算符

    符号 作用
    && 逻辑与(且)。两者都为真时,结果才为真,有一个为假,结果为假
    || 逻辑或。有一个为真,结果为真,两个都为假时,结果为假
    ! 逻辑非(不是)。为真时,取反为假;为假时,非就为真

在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;
}

练习

  1. 输入三个整数判断输入的前两个数加起来是否等于第三个数如果是则输出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;
    } 
    
  2. 输入两个整数并判断其中一个数是否是另一个数的倍数如果是则输出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;
    } 
    
  3. 输入一个整数代表年份判断该年是否为闰年如果是则输出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;
    }