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

(一)改错题
输出三角形的面积和周长,输入三角形的三条边a、b、c,如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数);否则,输出“These sides do not correspond to a valid triangle”。
输入输出样例1:
  Enter 3 sides of the triangle: 5 5 3
  area = 7.15; perimeter = 13.00
输入输出样例2:
  Enter 3 sides of the triangle: 1 4 1
  These sides do not correspond to a valid triangle
源程序(有错误的程序)
1245473-20171105171956873-111707365.png
错误信息(1):
1245473-20171105172553701-853133060.png
错误原因:; 前缺一个)
改正方法:; 前加一个)
错误信息(2):
1245473-20171105172803951-610336388.png
错误原因:if 条件后边没有大括号
改正方法:在if 和 else 中间以大括号括起来
错误信息(3):
1245473-20171105173219373-1614337678.png
错误原因:||不对,用||表示的条件不对
改正方法:把||改为&&
(二)学习总结
1.在编程解决问题的过程中,我们会用到多个if语句,if...else if... 语句以及switch语句,查阅资料,总结一下这三种情况的区别何在,并分别举例加以说明。禁止大段复制,要自己对资料进行归纳总结,并给出你参考的资料链接。
2.对其他你认为需要进行总结的内容进行总结。
1. if语句,if else if语句和switch case语句都属于流程控制语句。
  在只需要判断一个条件的时候,自然是使用if语句方便有效;但是当判断条件很多的时候,我们可以使用多个if语句或者if...else if语句或者switch case语句。
对于这三者的选择,下面将做一些具体分析;对于后两者的选择,又将涉及到程序执行效率的问题。
  if...else if语句和多个if语句的区别还是很大的,if...else if在任何一个环节满足条件的时候就将会终止判断,只处理一个满足条件的情况;而对于多个if语句,
将会对每一个判断条件进行判断,自然而然会导致程序的执行效率降低。在多个判断条件的情况下,使用if...else if语句相对于使用多个if语句而言,可以减少程序
的判断次数,提高效率。
  在多个判断条件的情况下,不仅可以使用if...else if语句,还可以使用switch case语句。一般情况下,当判断条件较多的情况下,使用switch case语句的
效率会高于使用if...else if语句。switch...case与if...else if的根本区别在于,switch...case会生成一个跳转表来指示实际的case分支的地址,而这个跳 转表的
索引号与switch变量的值是相等的。从而,switch...case不用像if...else if那样遍历条件分支直到命中条件,而只需访问对应 索引号的表项从而到达定位分支的目的。
所以从效率上来说由于if...else if的遍历性,代码执行效率是不高的。
http://www.cnblogs.com/wankun/p/4989831.html

  1. 在c语言中如果想将一个字符串存放到变量中,必须使用字符数组,就是用一个字符型数组存放一个字符串,用char来注释。switch语句一定记得跳出有break,不然会输出错误。一定要注意变量的类型,是double还是int,以及scanf里的输入类型,在用到多对括号时,仔细核对括号是否成对。

(三)实验总结
本次实验总结,学号末位数是单数的同学完成选择结构(2)中的1、5、7、9题,学号末位数是双数的同学完成选择结构(2)中的2、4、6、8题。
1.比较大小
(1)题目
本题要求将输入的任意3个整数从小到大输出
(2)流程图
1245473-20171105174428201-1019485522.png
(3)源代码
1245473-20171105174752545-205159574.png
(4)实验分析
没啥错误,就是做的时候输出总是忍不住又写地址符。
(5)本题PTA提交列表
1245473-20171105175416232-60234412.png
2.高速公路超速处罚
(1)题目
按照规定,在高速公路上行使的机动车,超出本车道限速的10%则处200元罚款;若超出50%,就要吊销驾驶证。请编写程序根据车速和限速自动判别对该机动车的处理。
(2)流程图
1245473-20171105175955560-1436632885.png
(3)源代码
1245473-20171105180335888-1951478414.png
(4)实验分析
经常会忘记写 ;,输出输出还会忘记写"
(5)本题PTA提交列表
1245473-20171105180637091-1406899723.png
3.计算油费
(1)题目
现在90号汽油6.95元/升、93号汽油7.44元/升、97号汽油7.93元/升。为吸引顾客,某自动加油站推出了“自助服务”和“协助服务”两个服务等级,分别可得到5%和3%的折扣。
本题要求编写程序,根据输入顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助),计算并输出应付款。
(2)流程图
1245473-20171105180800951-280936390.png
(3)源代码
1245473-20171105180843091-1541190456.png
(4)实验分析
这个只需要一步步模仿就行,就是不能忘记没一个条件后都要加break
(5)本题PTA提交列表
1245473-20171105181141482-968306591.png
4.12-24小时制
(1)题目
编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。
(2)流程图
1245473-20171105181242451-542011740.png
(3)源代码
1245473-20171105181325091-667324775.png
(4)实验分析
到现在还能忘记在 return 0 后边加分号,很惭愧
(5)本题PTA提交列表
1245473-20171105181447607-375804104.png
(四)博客互评
1.王小龙http://www.cnblogs.com/longv587/p/7786770.html
点评:写的非常仔细,而且也经常帮助我,让我少走许多弯路。
2.怪人http://www.cnblogs.com/LLIU/p/7765845.html
点评:截图位置不太好,但是做的非常令人钦佩,又快又准。
3.范凯华计科http://www.cnblogs.com/fkh1/p/7774050.html
点评:尽管错误不少,但很细心的改正,很努力,以你为榜样,好好学习。

转载于:https://www.cnblogs.com/Sankinv587/p/7788140.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值