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

源程序(有错误的程序)

错误信息1:

错误原因:算式少了半个括号,用括号括起。
改正方法:添加上右边缺少的括号。
错误信息2:

错误原因:else前后的语句缺少大括号。
改正方法:在if语句后也就是else前加上大括号,同时在else后加上大括号。
编译无误

输入第一个值,正确:

继续输入第二个值,运行结果错误:

错误原因:输入1 4 1时,不构成三角形,程序中if语句条件错误。
改正方法:将“||”都改为“&&”。

再次输入两值,均得到正确结果


(二)学习总结
1.在编程解决问题的过程中,我们会用到多个以及if语句,if...else if... 语句switch语句,查阅资料,总结一下这三种情况的区别何在,并分别举例加以说明。
(1)程序执行效率
在条件较少的情况下,用if语句较为方便,条件较多时,用if...else if... 语句合适,大部分情况都可用switch语句。

(2)便利性
case后面一定要是常量,当条件的分支很多时通常使用switch...case

参考链接:http://www.cnblogs.com/wankun/p/4989831.html
2.对其他你认为需要进行总结的内容进行总结。
不同的语句在不同条件下的适用程度是不一样的,熟练并善于转化,有助于我们在编程过程中达到事半功倍的效果,而且,每个语句都有不同的特点,熟悉这些特点在面对各种问题时对症下药,就可以快速找出问题的错误,并很好的改正。
(三)实验总结
1.成绩转换
(1)题目:
本题要求编写程序将一个百分制成绩转换为五分制成绩。转换规则:
大于等于90分为A;
小于90且大于等于80为B;
小于80且大于等于70为C;
小于70且大于等于60为D;
小于60为E。
(2)流程图

(3)源代码

(4)实验分析
无问题
(5)本题PTA提交列表

5.三角形判断
(1)题目:给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),检验它们能否构成三角形。
(2)流程图


(3)源代码

(4)实验分析
问题1.S=(double)(a+b+c)/2语句中必须用double
原因:若a+b+c为奇数则S为小数
解决方法:检查发现只有在a+b+c为偶数时才成立,加上double都奇数也正确
(5)本题PTA提交列表

7.简单的计算器
(1)题目:本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。
输入格式:
输入在一行中依次输入操作数1、运算符、操作数2,其间以1个空格分隔。操作数的数据类型为整型,且保证除法和求余的分母非零。
输出格式:
当运算符为+、-、*、/、%时,在一行输出相应的运算结果。若输入是非法符号(即除了加、减、乘、除和求余五种运算符以外的其他符号)则输出ERROR.
(2)流程图

(3)源代码

(4)实验分析
无问题
(5)本题PTA提交列表

9、求一元二次方程的根
(1)题目:本题目要求一元二次方程的根,结果保留2位小数。
输入格式:
输入在一行中给出3个浮点系数a、b、c,中间用空格分开。
输出格式:
根据系数情况,输出不同结果:
1)如果方程有两个不相等的实数根,则每行输出一个根,先大后小;
2)如果方程有两个不相等复数根,则每行按照格式“实部+虚部i”输出一个根,先输出虚部为正的,后输出虚部为负的;
3)如果方程只有一个根,则直接输出此根;
4)如果系数都为0,则输出"Zero Equation";
5)如果a和b为0,c不为0,则输出"Not An Equation"。
(2)流程图

(3)源代码


(4)实验分析
虚根问题上一直没搞明白,到截止时间也没有解决问题,之后又请教了其他同学,终于清楚了问题所在。
(5)本题PTA提交列表

(四)博客互评
(1)思念诠释你我的距离 http://www.cnblogs.com/karry-5201314/p/7779360.html
思路比较清晰,内容格式方面值得我学习请教
(2)赵晓辉 http://www.cnblogs.com/2205747462x/p/7784914.html
不论是文章排版还是做题细节方面都比我要强,很多我注意不到的点在他的作业当中都能找到,并对我有所启发。
(3)浅温 http://www.cnblogs.com/123456lxl/p/7774897.html
整体感觉还可以,但是让人看着不舒服,在问题细节和编程方面也没有前两位同学的好,但是仍有我学习借鉴的地方。

posted on 2017-11-05 10:30  碧海听潮  阅读(3110)  评论(0编辑  收藏  举报