第四次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,编译:

错误信息:

错误原因:用到函数sqrt时后面的式子没有用"()"括起来。
改正方法:用到函数sqrt时后面的式子要用"()"括起来。

2,编译:

错误信息:

错误原因:if 后没有用到大括号。
改正方法:if后加上大括号。
3,再次编译:

运行:

出现错误。

错误信息:

错误原因:不应该用"||"。
改正方法:将"||"改为"&&“。
4,再次编译

运行:

(二)学习总结

1.在编程解决问题的过程中,我们会用到多个if语句,if...else if... 语句以及switch语句,查阅资料,总结一下这三种情况的区别何在,并分别举例加以说明。禁止大段复制,要自己对资料进行归纳总结,并给出你参考的资料链接。
2.对其他你认为需要进行总结的内容进行总结。

答:多个if是所有的if都会进行判断,如果是真,则执行if体,否则跳过if体,继续执行后续语句。
if...else if... 都是一路程序分支,实际上是if-else结构的变种。
if...else当判断表达式为真时,执行if体;当判断表达式为假时,执行else体。
switch体是一个复合语句,该复合语句包含若干个case语句和一个default语句,default语句也可以省略写。switch写起来比较整齐,而且如果程序大的话,用switch很好写.switch的case语句如果不写break;就会往下执行,这样有时候又可省写很多. 如果项比较少的时候,建议用if。
假如判断的过多,用switch效率比if更高。

(三)实验总结
1(1)题目

本题要求编写程序将一个百分制成绩转换为五分制成绩。转换规则:
•大于等于90分为A;
•小于90且大于等于80为B;
•小于80且大于等于70为C;
•小于70且大于等于60为D;
•小于60为E。

输入格式:

输入在一行中给出一个整数的百分制成绩。

输出格式:

在一行中输出对应的五分制成绩。
(2)流程图

(3)源代码

(4)实验分析
问题1:
原因:switch的case语句没写break,一直往下执行。
解决办法:在每次case语句结束后,分行写下break;
(5)本题PTA提交列表

2(1)题目
7-5 三角形判断(10 分)

给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),检验它们能否构成三角形。

输入格式:

输入在一行中顺序给出六个[−100,100]范围内的数字,即三个点的坐标x1​、y1​、x2​、y2​、x3、y3​。

输出格式:

若这3个点不能构成三角形,则在一行中输出“Impossible”;若可以,则在一行中输出该三角形的周长和面积,格式为“L = 周长, A = 面积”,输出到小数点后2位。
(2)流程图

(3)源代码

(4)实验分析
问题1:
原因:运用sqrt时没有把要开方的式子用括号括起来。
解决方法:在sqrt后的式子加上括号。
(5)本题PTA提交列表

3(1)题目
7-7 两个数的简单计算器(10 分)

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

输入格式:

输入在一行中依次输入操作数1、运算符、操作数2,其间以1个空格分隔。操作数的数据类型为整型,且保证除法和求余的分母非零。

输出格式:

当运算符为+、-、*、/、%时,在一行输出相应的运算结果。若输入是非法符号(即除了加、减、乘、除和求余五种运算符以外的其他符号)则输出ERROR。
(2)流程图

(3)源代码

(4)实验分析
问题1:
原因:粗心拉掉了 若输入是非法符号(即除了加、减、乘、除和求余五种运算符以外的其他符号)则输出ERROR,这一步。
解决方法:在switch最后中加入default:printf("ERROR") ;
exit(0);

(5)本题PTA提交列表

(1)题目
7-9 求一元二次方程的根(10 分)

本题目要求一元二次方程的根,结果保留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/lsx123/p/7780863.html
内容清楚,向你学习,共同努力!
2
☀☀(马太阳):http://www.cnblogs.com/myg123/p/7784651.html
标注清楚,语言精练,向你学习。
3
陈魔(刘苗苗):http://www.cnblogs.com/liumiaomiao520/p/7753982.html
错误表住的很清楚,总结到位,认真的态度值得我去学习。

posted on 2017-11-05 16:07  计科02  阅读(857)  评论(0编辑  收藏  举报

导航