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:

错误原因:第13行语句不完整,无法执行语句,缺少括号
改正方法:在13句末尾加一个括号

错误信息2:

错误原因:if语句后缺少一个大括号
改正方法:if语句后加一个大括号

错误信息3:

错误原因:if后的条件不正确,导致运算结果不正确
改正方法:将||改为&&

(二)学习总结
1.在编程解决问题的过程中,我们会用到多个if语句,if...else if... 语句以及switch语句,查阅资料,总结一下这三种情况的区别何在,并分别举例加以说明。
答:(1)多个if语句和If...else if...语句的区别:
多个if语句中的所有if语句都会进行判断,而if...else if...语句是先判断if语句。而且,在if...elseif...语句中,任何一个条件的满足都可以终止语句,但是在if语句中,必须执行完所有的if语句才能结束。
(2)在只需要判断一个条件的时候,自然是使用if语句方便有效;但是当判断条件很多的时候,我们可以使用多个if语句或者if...else if语句或者switch case语句
(3)一般来说,如果判断条件很多的话,多用switch case语句,因为switch语句更精准。
参考资料:http://www.cnblogs.com/wankun/p/4989831.html
如下所示:



2.其他内容总结:在case后记得加break,来表示结束。
还有在case后记得加空格。
(三)实验总结
1.成绩转换
(1)题目:本题要求编写程序将一个百分制成绩转换为五分制成绩。转换规则:大于等于90分为A;小于90且大于等于80为B;小于80且大于等于70为C;小于70且大于等于60为D;小于60为E。
(2)流程图:

(3)源代码:

(4)实验分析:
问题:如图所示,显示编译错误为0,但是在运行时,输入90,但输出的却是E,应该输出的是A。

原因:在case语句后没有加空格
解决方法:在所有的case语句后加一个空格。
(5)本题PTA提交列表:

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

(3)源代码:

(4)实验分析:
问题1:如图所示,无法运行,sqrt无法显示

原因:没有在程序伊始缺少对数学运算的允许。
解决方法:在#include<stdio.h>后接上#include<math.h>
问题2:编译0错误,但是进行赋值运算后,结果与正确答案不符

原因:数学公式错误
解决方法:将数学公式改正,再次进行赋值运算,错误改正
(5)本题PTA提交列表:

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

(3)源代码:

(4)实验分析:
问题1:

原因:
解决方法:
问题2:

原因:exit无法表达,缺少#include<stdlib.h>语句
解决方法:在#include<stdio.h>后加上#include<stdlib.h>语句
(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)实验分析:
问题:如图所示,输入数值后,程序停止运行

原因:没有加取地址符,格式错误
解决方法:在scanf后加上取地址符
(5)本题PTA提交列表:

(四)博客互评
郭展旭:http://www.cnblogs.com/1234569ss/p/7754274.html
小七1:http://www.cnblogs.com/xiaoqi1/p/7784570.html
胡展业:http://www.cnblogs.com/SYDneyHZY/p/7774739.html

posted @ 2017-11-05 12:35  大鱼会飞  阅读(707)  评论(2编辑  收藏  举报