第四次C语言作业

时间:2022-05-05 05:32:09

(一)改错题

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

源程序(有错误的程序)

第四次C语言作业

1,编译:

第四次C语言作业

错误信息:第四次C语言作业

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

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

2,编译:

第四次C语言作业

错误信息:第四次C语言作业

错误原因:if 后没有用到大括号。

改正方法:if后加上大括号。

3,再次编译:

第四次C语言作业

运行:

第四次C语言作业

第四次C语言作业

出现错误。

错误信息:

第四次C语言作业

错误原因:不应该用"||"。

改正方法:将"||"改为"&&“。

4,再次编译

第四次C语言作业

运行:

第四次C语言作业

(二)学习总结

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)流程图

第四次C语言作业

(3)源代码

第四次C语言作业

(4)实验分析

问题1:第四次C语言作业

原因:switch的case语句没写break,一直往下执行。

解决办法:在每次case语句结束后,分行写下break;

(5)本题PTA提交列表

第四次C语言作业

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)流程图

第四次C语言作业

(3)源代码

第四次C语言作业

(4)实验分析

问题1:第四次C语言作业

原因:运用sqrt时没有把要开方的式子用括号括起来。

解决方法:在sqrt后的式子加上括号。

(5)本题PTA提交列表

第四次C语言作业

3(1)题目

7-7 两个数的简单计算器(10 分)

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

输入格式:

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

输出格式:

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

(2)流程图

第四次C语言作业

(3)源代码

第四次C语言作业

(4)实验分析

问题1:第四次C语言作业

原因:粗心拉掉了 若输入是非法符号(即除了加、减、乘、除和求余五种运算符以外的其他符号)则输出ERROR,这一步。

解决方法:在switch最后中加入default:printf("ERROR") ;

exit(0);

(5)本题PTA提交列表

第四次C语言作业

  1. (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)流程图

第四次C语言作业

(3)源代码

第四次C语言作业

第四次C语言作业

(4)实验分析

计算复杂,实根虚根听了很多看了一些 自己做题并不很懂。

(5)本题PTA提交列表

第四次C语言作业

(四)博客互评

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

错误表住的很清楚,总结到位,认真的态度值得我去学习。