反馈:
#pragma mark - 简单复习
复习1.
scanf的使用
作用:获取用户输入
用法:
scanf("%d%f",&整型变量的地址,&float类型变量地址);
复习2.算术运算符
有哪些: +-*/%
优先级:*/%高 +-低
如果优先级一样那么从左到右
复合赋值运算符:
int sum = 0;
sum+=2;====>sum = sum +2;
#pragma mark - 0_14 自增与自减运算[掌握]
1.++ -- 自增自减 运算符
不管是++ 还是-- 完了之后a的值肯定会变
int main(){
int num = 0;
++num;//1
num++;//2
++num;//3
num++;//4
num++;//5
printf("num = %d\n",num);
}
2.++ 和 --
int num = 10;
//num = num + 1;
//num+=1;
num++;就是把num加上一个1 赋值给num
++num;也是把num加上一个1 赋值给num
无论是前++ 还是后++ 都是将num值加上1
3.++和--式子
假设int a = 5;
a++ ----> 整个 a++ 的式子的值是a ---> a的值 是 a+1
++a ----> 整个 ++a 的式子的值是a+1 ---> a的值 是 a+1
a-- ----> 整个 a-- 的式子的值是a ---> a的值 是 a-1
--a ----> 整个 --a 的式子的值是a-1 ---> a的值 是 a-1
#pragma mark - 0_15 逗号表达式[听懂]
"强调
1.逗号表达式书写: (表达式1,(表达式2),表达式3,...)
2.执行过程: 从左向右执行
3.整个逗号表达式的结果:最后一个表达式的值
我们要的是最后一个表达式的值,但是前面的表达式执行后可能会影响最后一个表达式的值
#pragma mark - 0_16 比较表达式的结果[掌握]
1.比较运算符:
> >= < <= != ==(才是判断两个数相不相等,= 赋值运算符)
5 > 3;正确的在C语言中,真
4 > 4:错误的在C语言中,假
3 >= 3:也是真的
4 <= 5:也是真的
2.比较表达式:
比较表达的结果
1>如果是真的 那就值就是1
2>如果是假的 那么值就是0
3.优先级:
算术运算符:+-*/%: */%高 +-低
比较运算符:
高优先级:> < >= <= 优先级相同
低优先级:== != 优先级相同
4.
int main()
{
int num = 0!=3<2;
//看到一个复杂的表达式
//要做以下步骤
//1.看运算符
//2.找优先级
printf("num = %d\n",num);
}
#pragma mark - 0_17 详解各类比较运算符[掌握]
1.> 大于运算符. 如果左边的数据大于了右边的数据.结果就真,结果就是1 否则为0
2.>= 大于等于运算符.如果左边的数据大于或者等于右边的数据.那么条件成立,结果就为1 否则就为0
3.< 小于运算符.如果左边的数据小于了右边的数据.那么条件成立,结果就是1 否则为0
4.<= 小于等于运算符号.如果左边的数据小于或者等于右边的数据.那么条件成立,结果就为1 否则就为0、
5.== 相等比较运算符.如果左边的数据等于右边的数据.那么条件成立,结果就为1 否则就为0.
友情提示: 判断两个数据是否相等 是两个等号. 1个等号叫赋值.
6.!= 不等比较运算符.如果左边的数据不等于右边的数据.那么条件成立,结果就为1 否则就为0.
#pragma mark - 0_18 比较运算表达式的场景 [掌握]
1.比较运算符的两边可以是常量或者是变量
int num = 10;
//int rel = num > 9
int rel = 100>111;
2.比较运算符的两边可以分别是表达式
int num = 10;
// 1 < 20 -----整个式子为1
int result = 11 - num < num * 2;
遇到了一个复杂表达式
1>看运算符:
2>看优先级: 乘除 > 加减 > 比较运算符
3.使用比较表达式来判断一个数据和另外一个数据的关系
1>判断一个数是不是5的倍数
一个数%5 == 0 ---->
结果有两种可能 0表示数不是5的倍数 1是表示数是5的倍数
2>实现
int main()
{
//定义一个数用于接受用户输入,拿这个数来操作
int caoZouShu = 0;
scanf("%d",&caoZouShu);
//对5取余数,如果结果 == 0 说明是5的倍数,反之就不是5的倍数
printf("%d\n",caoZouShu%5==0);
return 0;
}
4.char类型的变量或者常量也可以参与比较运算符,
本质比较的是相应的ASCII码
'A' < 'B'
char ch1,ch2;
.....//某一些操作
int rel = ch1 > ch2;
如果rel 是0 代表 ch2这个字符 肯定在 ch1字符的后面或者相同
如果rel 是1 代表 ch1这个字符 肯定在ch2的后面
5.练习:
int num1 = 10;
int num2 = 20;
int k = num1 > 5 ,num2 <= 20 , (num2 * 3);
// * + 比较
printf("k = %d\n",k);
一个复杂的表达式:
1.看运算符
2.找优先级
3.看结合性
练习2:
int number = 2;
int k = number + 1 == ++number;
优先级:(number + 1) == (++number)
结合性:从左到右结合 先算 number + 1 后算number++
#pragma mark - 01 逻辑运算符的简要介绍 [掌握]
1.逻辑运算符的种类:
&& 逻辑与(并且) ||逻辑或(或者) !逻辑非(取反)
2.逻辑表达式的结果:要么是真的(1) 要么是假的(0)
3.计算机中的真与假:
在计算机中 如果是真的 那么就是1 如果是假的那么就是0
如果一个数 是0 计算机认为他是假的
如果一个数是 非0 计算机认为他是真的
#pragma mark - 02 逻辑与运算符 [掌握]
"表达式A && 表达式B
1.&&逻辑与运算符运算规则
A 和 B 都是真 结果才是真,A 和 B 有一个是假,结果就是假
"口诀":全真为真
比如判断一个数 是不是在 0-100之间
不能这么写: 0<=一个数<=100
必须用逻辑与: number >=0 && number <= 100
练习:
int num = 10;
int i = 20;
int result = (num > 9) && (i > 10);
//result = 1
2.短路问题[了解]
如果A为假的 那么直接不执行B了
int i = 10;
int k = (i > 20) && (i++ < 20);
//最后输出的结果是 i的值为10,因为&& 第一个式子是假的 短路了
#pragma mark - 03 逻辑或运算符 [掌握]
"表达式A || 表达式B
1.||逻辑或运算符运算规则
A 和 B 只要一个是真的 结果就是真,
"口诀":一真则真
2.短路问题[了解]:
如果A为真的 那么直接不执行B了
练习:
#include <stdio.h>
int main()
{
int num = 1;
int i = 0;
int result = num > 0 || i++;
printf("%d----%d\n",result,i);
return 0;
}
3.计算机中的真与假
5 > 3 如果是真的 计算机会把1给你
3 > 5 如果是假的 计算机会把0给你
如果你给计算机一个 非0 计算机就认为是真的
如果你给计算器一个 0 计算机就会认为是假的
#pragma mark - 04 逻辑运算符的优先级 [掌握]
1. !逻辑非运算规则
规则: 真变假 假变真
练习:
int main()
{
int i=2,j=0,k=-2;
printf("%d----%d---%d\n",!i,!j,!k);
return 0;
}
2.优先级的万能公式:
() "大于" -(负号) "大于" !(取反) "大于" 算术运算符 "大于"
]"大于" =(赋值) "大于" ,(逗号运算符)
#pragma mark - 04_2 练习讲解 [掌握] [播]
此知识点复习时见第3天视频笔记/04_2 练习讲解.pdf
1.什么是优先级
一个表达式中如果有多种运算符 那么先算哪一个 后算哪一个 这就是运算符的优先级
2.什么是结合性
一个表达式如果多个运算符的优先级相同 那么先算哪一个后算哪一个 这就是运算符的结合性
1> 1+2-3+4 : 结合性是从左到右
2> int i = 1,j = 2,k = 3;
i=j=k=3;//执行完了之后 ijk的值都是3
3.一个复杂表达式的计算过程
1>看运算符
2>找优先级
3>看结合性
#pragma mark - 06 IF结构的使用 [掌握]
1. C语言程序的结构:
顺序结构: 程序从上向下依次执行
printf("a");
printf("b");
printf("c");
printf("d");
选择结构:
if : 假如 num > 5 那么 xxxx
switch:
循环结构:
2.if的格式
if (关系表达式){
语句块1;
}
if(烟抽了超过5根){
滚出去;
}
关系表达式: 只有一个结果 真的 或者假的
"如果关系表达式是真的 那么 执行语句块1;
"如果关系表达式是假的 那么 不执行语句块1;
#pragma mark - 06_2 练习讲解 [掌握]
请用户输入他的儿子的语数外三门课的成绩,如果平均分>=60,给他一个吻.
int main()
{
//思路
//要获取语数外三门成绩
int yu,shu,wai=0;
printf("输入你儿子的语数外三门成绩,用~隔开");
scanf("%d~%d~%d",&yu,&shu,&wai);
//计算平均值
float avChengji = (yu + shu + wai) / 3.0;
//if(平均值>=60)--->给他一个吻
if(avChengji >=60)
{
printf("亲他!\n");
}
return 0;
}
#pragma mark - 07 使用IF结构注意[掌握]
1.代码中的分号代表一条指令的结束
2.if语句块
if(表达式)//这里不允许加一个 ";",因为if语句块还没结束
{
语句块;
}
3.if(条件表达式): if后面的小括号中 可以写任意表达式,如果是非0 那么认为是真的,如果是0 那么认为是假的
4.永真和永假的问题
if(1):代表条件永远成立
if(0):代表条件永远不成立
5.
if(表达式)
{
printf("aa");
printf("aa");
}
"语句块A":中可以有一行代码 也可以有多行代码,甚至可以没有代码
6.保持代码的对齐
快捷键: control + i
// 取小数部分
float num = 2.34f;
int num1 = num;
float xiaoshu = num - num1;
|