C语言程序设计第四次作业

(一)改错题

输出三角形的面积和周长,输入三角形的三条边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

错误信息1

错误原因:if内的条件不对,且if和else下面缺少花括号。

改正方法:在if和else下面加上花括号,并把if后面括号内的||改为&&。

错误信息2

错误原因:sqrt后面的括号应成对出现,缺少括号。

改正方法:补全括号。

错误信息3

错误原因:经检查发现,abc的定义类型有错误,

改正方法:把abc的类型定义成int。

错误信息4

错误原因:因为把abc的类型改为了int,所以scanf的输入类型有误。

改正方法:把scanf里的%lf改为%d

正确代码:

(二)学习总结
1
两者本质的区别是 if-else语句更适合于对区间(范围)的判断,而switch语句更适合于对离散值的判断,if else 与 switch 可以相互转化,不过有时switch看起来比较好理解。有时有用if else比较好,但变量一定是用switch比较好,当变量不确定时用if else就比较好,switch用来根据一个整型值进行多路分支,并且编译器可以对多路分支进行优化,所以在多路分支时用switch比if..else if .. else结构要效率高。

资料链接:

http://blog.csdn.net/cd520yy/article/details/49533217

https://wenku.baidu.com/view/a22a85442b160b4e767fcf7b.html

2其他

一定要注意变量的类型,是double还是int,以及scanf里的输入类型,在用到多对括号时,仔细核对括号是否成对。

(三)实验总结

1、题目

7-2 比较大小
本题要求将输入的任意3个整数从小到大输出。
2、流程图

3、源代码

4、实验分析
问题:在c++上正确,提交到pta上不对

原因:输出格式不对,没有复制题目给出的格式

解决办法:复制题目给出的格式,在改变相关数值。

5、本题提交列表

1、题目
7-4 高速公路超速处罚
按照规定,在高速公路上行使的机动车,超出本车道限速的10%则处200元罚款;若超出50%,就要吊销驾驶证。请编写程序根据车速和限速自动判别对该机动车的处理。
2、流程图

3、源代码

4、实验分析
提交本题时出现多次编译错误,经过不断改正并询问同学,最终理解并能正确编译。

5、本题提交列表

题目
7-6 计算油费
现在90号汽油6.95元/升、93号汽油7.44元/升、97号汽油7.93元/升。为吸引顾客,某自动加油站推出了“自助服务”和“协助服务”两个服务等级,分别可得到5%和3%的折扣。

本题要求编写程序,根据输入顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助),计算并输出应付款。

2、流程图

3、源代码


4、实验分析
自己感觉自己的代码不是很好,步骤太多,别的没啥问题,计算好公式就应该都能做对。

5、本题提交列表

1、题目
7-8 12-24小时制
编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。

2、流程图

3、源代码

4、实验分析

多次提交都有部分错误,原因是零点和二十四点归类错误,经过反复改正,真人阅读题目中的提示,最终改对。

5、本题提交列表

(四)博客互评

风离你在:http://www.cnblogs.com/GX201701-/p/7765475.html

吴晗:http://www.cnblogs.com/moying456/p/7770919.html

贺博涛:http://www.cnblogs.com/he111923/p/7772093.html

posted @ 2017-11-05 11:34  不知^o^  阅读(1500)  评论(3编辑  收藏  举报