C语言程序设计第四次作业——选择结构(2)

(一)改错题

对源程序进行编译发现有误
错误信息1
1242349-20171103165441576-2027564402.png
错误原因:第13行丢掉了与最开始那半个括号配对的半个括号
改正方法:加上那半个括号
错误信息2
1242349-20171103165801716-2125037802.png
错误原因:if和else语句使用格式错误
改正方法:在if和else语句下分别加上大括号(如图)
1242349-20171103170416513-1190261124.png
再次编译无误,运行结果不对
错误信息3
1242349-20171103174108779-1869894678.png
错误原因:第11行if语句中应该是和(&&)的关系,而它用的且(||)
改正方法:将“||”换成“&&”
再次编译运行,结果无误。

(二)学习总结

1.if和if else以及switch语句的区别
switch语句只会在一开始的switch括号中取出变量值一次,然后将这个值与下面所设定的case比较,但如果使用if,每次遇到条件式时,都要取出变量值
例如: if(a == 1) //... else if(a == 2) //... else if(a == 3) //... 这个程序片段在最差的状况下,也就是a = 3时,共需3次比较,而每次比较都必须取出变量a的值一次。 如果换成switch: switch(a) { case 1: //... break; case 2: //... break; case 3: //... break; } 在这个程序片段中,只在开头switch的括号中取出变量a的值,然后逐一比较下面的case,效率的差别就在这儿。遇到复合条件时,就得使用if了。简单地说,if与switch两者可以搭配着灵活使用。
https://wenku.baidu.com/view/a22a85442b160b4e767fcf7b.html
If -else if有多个分支,有条件的执行每一个分支 里面的语句
If -else有条件的执行其中的一条语句
SWitch-case有条件的执行一组语句中的一条语句
有多个if语句的话,所有的if语句都要执行,而if else语句只执行其中的一个条件即可
2.其他总结
选择结构要注意if else语句和switch语句的运用区别,switch的穿透性及char的运用。同时,依然要强调细节问题!千万不能够犯这种小错误。还要熟记本章新学的转义字符有关内容。

(三)实验总结

  1. (1)比较大小
    (2)流程图
    1242349-20171105140519623-1916960310.png
    (3)源代码
    1242349-20171105161055920-1565351434.png
    (4)实验分析
    问题1:运行结果符号不对
    原因:未注意输出格式中关系符号的格式
    解决方法:将
    问题2:raptor输不出结果
    原因:输出框中变量需用引号标注
    解决方法:标注即可
    (5)本题PTA提交列
    1242349-20171105142219170-1302087294.png
    1242349-20171105163748591-2107016085.png
  2. (1)高速公路超速处罚
    (2)流程图
    1242349-20171105142528154-932770776.png
    (3)源代码
    1242349-20171105161140263-1872942845.png
    (4)实验分析
    问题1:不能输出%
    原因:printf语句中%.f后应该有两个%才能输出%
    解决方法:加上两个%
    问题2:不能输出正确的对应结果
    原因:if语句搭配使用错误
    解决方法:使用if else if及else语句
    (5)本题PTA提交列
    1242349-20171105144434841-2063790144.png
    1242349-20171105144440779-1884941596.png
  3. (1)计算油费
    (2)流程图
    1242349-20171105144551420-1509251847.png
    (3)源代码
    1242349-20171105161220545-809147284.png
    (4)实验分析
    问题:输出结果有误
    原因:丢掉了break语句
    解决方法:在对应语句后加上break语句
    (5)本题PTA提交列
    1242349-20171105145057482-1138549413.png
  4. (1)12-24小时制
    (2)流程图
    1242349-20171105145144857-1960533122.png
    (3)源代码
    1242349-20171105161256998-728398733.png
    (4)实验分析
    问题:raptor运行有误
    原因:raptor作图时在判断框直接输入了a<=12,忽略了用or表示并且的关系
    解决方法:将a<=12改成a<12 or a=12
    (5)本题PTA提交列表
    1242349-20171105145756388-1030952566.png

    (四)博客互评

    http://www.cnblogs.com/fkh1/p/7774050.html
    http://www.cnblogs.com/tengwenqing/p/7762729.html
    http://www.cnblogs.com/123456lxl/p/7774897.html

转载于:https://www.cnblogs.com/hbnydx/p/7779380.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值