C语言学习笔记3.4章

发布时间 2023-09-09 22:52:48作者: 沐风大榕

3.1.2习题解析

BCD:一个字节表示两位数,4个比特位表示一位。例:0x12表示的是十进制的18; 所以18如何变为BCD所表示的数呢:18/16=1;18%16=2,故为 1*10+2=12。

题:输入一个三位数的数,逆序输出该数:

不能直接在printf中%d%d%d,因为这样700输出,就会是007

 

3.2.1做判断:if语句()括号里面的条件成立才会执行大括号里的内容。

 

3.2.2判断的条件:关系运算,做运算的比较符

优先级比:算术运算符>关系运算符>赋值运算符

关系运算符:计算两个值之间的关系:== ;!=;>;>= 等

关系运算的结果:符合预期:1,否则:0;

相等与否的优先级比大小的低,连续的关系运算从左往右进行。

3.2.3找零计算机:判断 注释 流程图

//:注释符 多行注释:/*开始 */结束

3.2.4否则的话:如果条件不成立呢

 

3.2.5if语句再探:

if,else不用大括号,而是用;;结束的位置之前的语句与if()共同构成if语句,else同理。但有多个语句,还是需要大括号

 

 

3.3.1嵌套的if else语句

else跟最近的if匹配:用大括号将第二个if语句括起,else与第一个if匹配,若无大括号,else则与第二个,也就是最近的那个if语句匹配

 

3.3.2级联的if-else语句

级联if-else:对齐else,省略{if},直接else if

 

3.3.4多路分支:Switch-case语句

 default做扫尾工作,都不满足的情况。可以弥补if else的冗杂 不用每一个都判断一下。case:后只能是常量和常量表达式如果没有break,则会执行下去。type=1代表调到case1,执行后面的语句;case是路牌

4.1.1循环

当级联if-else时:为else时,后不能加条件like(x>99)?会不会是只能if后加(),else不能,不管是普通:经过验证,else后不能加条件。

 

 

 这种结果会覆盖,因为每一个if都会看,符合则n改变

 

4.1.2while循环

循环体内要有可以改变的条件,不然会陷入循环

while:当条件满足时,我们要进入循环。所以while的语句有可能一次都没有执行

 

4.2.2猜数游戏(2023.8.27)

rand:系统函数,每次召唤rand就得到一个随机数;

x%n的结果是0--n-1的一个整数:

 

 猜数代码:

 

4.2.3算平均数

(1)do while 回车后无法继续输入

 

 (2)if:结果都为输入的第一个数

 

4.2.4整数求逆

整数的分解:a%10:得个位数;a/10:去掉个位数;

( a/10)%10:得十位数