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后加上花括号。
编译无误输入第一个值,正确:

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

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


(二)学习总结

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

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

链接:
http://www.cnblogs.com/wankun/p/4989831.html

2.对其他你认为需要进行总结的内容进行总结。
(1)case 的格式是空格,冒号,下面再写语句。
(2)注意if case的对应性,缩进。
(3)分清if语句,if...else if... 语句switch语句的区别,并学会适宜的应用他们。
(4)再if条件判断时,等于的字符型要用单引号引起来

(三)实验总结
1.成绩转换
(1)题目:
本题要求编写程序将一个百分制成绩转换为五分制成绩。转换规则:
大于等于90分为A;
小于90且大于等于80为B;
小于80且大于等于70为C;
小于70且大于等于60为D;
小于60为E。
(2)流程图

(3)源代码

(4)实验分析

问题1:

原因:switch后多加了一分号。
解决办法:去掉分号。
(5)本题PTA提交列表

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


(3)源代码

(4)实验分析

问题1:

原因:sqrt为数学函数,没有定义。
解决办法:定义数学函数。
问题2:

原因:数学函数后应用括号将它后边的式子括起来。
解决办法:在式子前后加上括号。
(5)本题PTA提交列表

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

(2)流程图

(3)源代码

(4)实验分析

问题1:

原因:switch语句末尾未加分号。
解决办法:加上分号。
问题2:

原因:没有定义exit(0)
解决办法:对exit(0)进行定义,加上# include<stdlib.h>
(5)本题PTA提交列表



9.求一元二次方程的根(10 分)
(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)实验分析

(4)实验分析:
这个题很难,思考的量很大,要用到很多的数学知识,由此可见要想学会C语言,只学单独一门课是不行的,必须同其他科目相融合。
(5)本题PTA提交列表

博客互评:
1.刘苗苗 http://www.cnblogs.com/liumiaomiao520/p/7753982.html
内容:很细心的注意到了,字体的大小,整个随笔显得很清晰,总结部分很到位。
2.李仁正 http://www.cnblogs.com/lrxlrz/p/7763680.html
内容:改错题截图可以空一行,显得清晰。
学习总结时,可以只展示一部分。尽量少的用原文,可以照着自己的理解来做。
3.马阳光 http://www.cnblogs.com/myg123/p/7784651.html
内容:在改错题中,将每个错误的位置标出,明确错误,使别人可以很清楚的看清。总结写的很详细,具体。最后的实验总结中,测试了几组不同的数据,使流程图更完善,这是我应该学习的。

posted @ 2017-11-05 02:03  落夕  阅读(391)  评论(1编辑  收藏  举报