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

---恢复内容开始---

(一)改错题 输出三角形的面积和周长,输入三角形的三条边a、b、c,如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数);否则,输出“These sides do not correspond to a valid triangle”。 源程序:![](http://images2017.cnblogs.com/blog/1242757/201711/1242757-20171101091253013-487467420.png) 错误信息1:![](http://images2017.cnblogs.com/blog/1242757/201711/1242757-20171101091515060-1378997549.png) 错误原因:a ,b,c的定义型错误,应为实数,即定义为 int. 改正方法:定义为int类型 :![](http://images2017.cnblogs.com/blog/1242757/201711/1242757-20171101091606326-637332663.png) 错误信息2:![](http://images2017.cnblogs.com/blog/1242757/201711/1242757-20171101091642482-793254279.png) 错误原因:因为a,b,c的定义类型错误,导致scanf的输入类型错误。 改正方法:将%lf改为%d :![](http://images2017.cnblogs.com/blog/1242757/201711/1242757-20171101091900513-281419406.png) 错误信息3:![](http://images2017.cnblogs.com/blog/1242757/201711/1242757-20171101092102498-1640911.png) 错误原因:if内的判断错误,且if下面缺少花括号。 改正方法:将||改为&&,且加上花括号 :![](http://images2017.cnblogs.com/blog/1242757/201711/1242757-20171101092201810-1963456410.png) 错误信息4:![](http://images2017.cnblogs.com/blog/1242757/201711/1242757-20171101092328607-1126158041.png) 错误原因:s为double类型,要使结果保留两位小数,不能除以2. 改正方法:除以2.0 :![](http://images2017.cnblogs.com/blog/1242757/201711/1242757-20171101092527138-83863849.png) 错误信息5:![](http://images2017.cnblogs.com/blog/1242757/201711/1242757-20171101092614201-1163003441.png) 错误原因:sqrt却缺少对应的括号。 改正方法:末尾加右括号 :![](http://images2017.cnblogs.com/blog/1242757/201711/1242757-20171101092759701-2017148074.png) 错误信息6:![](http://images2017.cnblogs.com/blog/1242757/201711/1242757-20171101092850435-2101407261.png) 错误原因:else下面缺少花括号。 改正方法:加上花括号 :![](http://images2017.cnblogs.com/blog/1242757/201711/1242757-20171101093136045-1534610083.png) 改正后的源程序:![](http://images2017.cnblogs.com/blog/1242757/201711/1242757-20171101093203998-1616148770.png) 输出样例1及结果:![](http://images2017.cnblogs.com/blog/1242757/201711/1242757-20171101093437888-1998468764.png)

(二)学习总结
1:对于C语言中的if else语句与switch语句:当变量确定是用if else语句比较好,反之,当变量不确定是用switch语句比较好。
链接网址:http://wenwen.sogou.com/z/q543779527.htm
2:对于C语言中的if语句与switch语句:switch里面,必须是单个变量,而不能是表达式,所以,它的判断很精确。且有一明显的区别 就是switch 可以是多项选择且直接跳转,即直到达到满足条件为止。而if里面一般是一个判断表达式,即判断的是一个范围。
链接网址;http://wenwen.sogou.com/z/q82597352.htm?sw=switch 和 if 的区别&ch=new.w.search.2&
3:对于C语言中的if语句与if else语句:if的判断有局限性,只能用多个if语句来判断满足的条件。而if else存在嵌套形式,可以用 else if来进行多步判断。具体情况,方便用哪种再进行选择。
链接网址:http://wenwen.sogou.com/z/q186879490.htm?sw=c语言中if 语句&ch=new.w.search.5&

总结:学习C语言必须要课下勤于练习,多上机,进行实践操作才可以在实践中发现不足,寻找自己的短板。

(三)实验总结
1:
(1)题目
成绩转换
本题要求编写程序将一个百分制成绩转换为五分制成绩。转换规则:

大于等于90分为A;
小于90且大于等于80为B;
小于80且大于等于70为C;
小于70且大于等于60为D;
小于60为E。

(2)流程图






(3)源代码






(4)实验分析
问题1:pta中成绩的转换判断。
原因:switch中成绩的转换需要在0--10之间进行判断。
解决办法:对输入的成绩除以10.
(5)本题PTA提交列表

5:
(1)题目
三角形判断
给定平面上任意三个点的坐标,形判断能否构成三角形。
(2)流程图

(3)源代码

(4)实验分析
问题1:三条边的求法
原因:对两点间距离的求法公式不熟。
解决办法:熟记公式。
(5)本题PTA提交列表

7:
(1)题目
两个数的简单计算器
本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。
(2)流程图

(3)源代码





(4)实验分析
问题1:除数不为零的问题。
原因:除数为零时没有意义。
解决方法:用判断条件排除除数为零。
(5)本题PTA提交列表

9:
(1)题目
求一元二次方程的根
本题目要求一元二次方程的根,结果保留2位小数。

问题难以解决,学生愚钝。请老师指教。

(四)博客互评
1:评价徐振刚的博客作业
徐振刚:http://www.cnblogs.com/yiqiekaoziji/
徐振刚的本次作业完成的较为迅速,有很大的学习劲头,在这方面我要向其学习。从作业的完成情况他对原来存在的问题都做了详细的标记,使人能很快发现错误。应该学习,最后,希望他可以在以后勤于练习,熟记C语言表达术语。
2:评价赵辰宇的博客作业
赵晨宇:http://www.cnblogs.com/zhaochenyu/
赵晨宇的本次作业完成的较为迅速,而且,本次作业他的作业面比较整洁,作业思路清晰,我觉得他的配图比较少,不利于同学们清楚的理解题目中的错误,希望可以改正。
3:评价石广正的博客作业
石广正:http://www.cnblogs.com/shaosiming/
石广正以他认真踏实的态度很漂亮的完成了本次博客园作业,他的作业总的来说很清晰,卷面整洁,给人很轻松的感觉,这一点 值得我好好学习 ,作业完成的也很好。我应该向他多学习。

posted @ 2017-11-02 23:51  luckyyou  阅读(439)  评论(3编辑  收藏  举报