一.级联的if-else(一般用于分段函数)
1.形式:if elseif... else
2.代码示例:若想输出分段函数的值,需要用到级联的if else
推荐写左边的代码,因为灵活(单一出口:只有一个printf),右边的写死了(多个printf)
二.多路分支switch-case
1.定义式:一般适用于多个值的等于输出
注意:控制表达式必须是int类型且必须在之前有所定义(egint 控制表达式;scanf("%d",&控制表达式;,常量可以是常数也可以是常数表达式(eg.case 1:也可以写成case 1+1:)
补:default表示输入的都不在case中则从default输出
2.代码示例:
正确的:若type=1输出早上好,type=2输出晚上好,.......
错误的:switch(type)后面不能加分号
3.break(switch-case的深度理解)
case的存在相当于一个起始点(若控制表达式为1就从case1依次往下执行,为2就从case2依次往下执行) 直到遇到break就跳出,无break就继续执行
注意:正常情况下要为每一个case配一个break,当然在有些时候可以利用break将某些相同的组合一起
代码示例:
结果:
思路:可以通过\10得前一位或两位数来判断是啥等级,比如100/10=10,90/10=9....
(然后A等级是90-100,所以包括数字10和9,然后就可以把相同的输出对应case放一起然后再加break,不用分别加break),其他的正常加break即可
4.分段函数能否用switch-case?
一般不可以,因为分段函数是连续的函数,而switch-case 是具体的值
三.循环
1.用级联的else if 来写代码(有一定局限性):
结果:(思路:用范围来判断是几位数,eg>999是四位数,>99是三位数....)
注:>只能从大到小(即先999再99再9),<只能从小到大(9再99再999)
局限性:若输入五位数,六位数,任意范围数...则要一直增加9999,99999....
要初始化 x,n 输入的x可以不用初始化
错误写法:将else去掉(若输入72,则判断出为1)
即eg当输入72 小于99,则判断大于9后又会继续判断大于0,最终输出1
即写代码写的是步骤而不是关系
2.为了解决这个局限性用while来写代码
结果:
注意:打印的是n 不是x
x /=10;
n++;可以交换顺序
解释:while部分:当x大于0时则会一直循环执行while里面的,直到x小于0才会跳出循环。与if不同,if是一次性的
四.while循环后续
1.循环体:指的是while大括号里面的
2.续上代码:(此代码可以判断出0的个数为1)
若将while上方的x /=10; n++;删除变为:(此代码不能判断0的个数为1)
3.除了dbug调试的两种方法:
·可以通过人脑模拟电脑来判断(即自己推)
·可以通过在对应位置加上printf来调试
eg,假如printf后即可输出其每一步循环对应的x,n值
注意:在调试完后记得注释掉
五.do-while循环
1.定义:
注意:while 后面要加;
2.while与do while的区别:
while是先判断是否满足·条件再进入循环,do while是先循环后判断是否满足条件
左边的是do while ,右边的是while
3.do while代码示例:位数
注意:此代码不加scanf后面的 x /=10; n++;也能输出0的个数为1(因为是先循环后判断)
此scanf不放dowhile里面是因为不用重复
然而若加上则0变为2错误
六.猜数游戏
1.题目:
2.思路:
.计算机随机想一个数,记在变量number里;
.一个负责计次数的变量count初始化为0;
.让用户输入一个数字a;
.
count递增(加一);
.
判断a和number的大小关系,如果a大,就输出
“大”;如果a小就输出“小”;
.如果a和number是不相等的(无论大还是小),程
序转回到第3步;
.否则,程序输出“猜中"和次数,然后结束。
3.代码:
注意:number,a不需要初始化=0,只需要存储即可,count必须初始化=0。然后while后面的条件是其成立时的条件
猜数游戏用do while更好而不是while(因为如果条件为假0,while就会一次也不执行,而do while至少执行一次,而猜数游戏是不管真假)
补充:此蓝色部分不能放dowhile的上方的原因:因为要重复输入此语句,所以要放里面
补充的总结:(针对此题)
七.算平均数
1.题目:
2.思路:
3.代码:
注意:if有一个以上的语句时要加大括号,然后初始化时要分开初始化,不能写一起。同时要做两次判断number!=-1
法二:用while写
此时要输入两个scanf,第一个在循环外部只执行一次,第二个在循环里面(再加一个是为了防止死循环)
八.任意整数求逆
代码: