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
源程序(有错误的程序)

include <stdio.h>

include <math.h>

int main(void)
{
double a,b,c;
double area,perimeter,s;
printf("Enter 3 sides of the triangle: ");
scanf( "%lf%lf%lf",&a,&b,&c );

if( a + b > c || b + c > a || a + c > b) 
    s = ( a + b + c ) / 2;
    area = sqrt( s * ( s - a ) * ( s - b ) * ( s - c );
    perimeter = a + b + c;
    printf("area = %.2f; perimeter = %.2f\n",area,perimeter);

else
    printf("These sides do not correspond to a valid triangle\n");

return 0;        

}
错误信息1:

错误原因:第13行的赋值语句中,分号前少加一个后括号。
改正方法:把第13行的赋值语句的分号前加一个后括号。括号这类的写的时候整洁一点,别丢括号啥的。
错误信息2:

错误原因:if-else语句中的执行语句没有加大括号。
改正方法:把if-else语句中的执行语句加上大括号。if后边必须跟上大括号,else后边不能加。
错误信息3:

错误原因:第一个输入及运行结果没问题,但是第二个输入却与预告结果不同找找后发现第11行的选择语句中,错把 && 写成了 || 。
改正方法:把 || 改成&&,他们一个是和,一个是或。
(二)学习总结
1.在编程解决问题的过程中,我们会用到多个if语句,if...else if... 语句以及switch语句,查阅资料,总结一下这三种情况的区别何在,并分别举例加以说明。
(1) 三者本质的区别是 if-else语句更适合于对区间(范围)的判断,而switch语句更适合于对离散值的判断
(2) 示例
判断65分到85分之间的学生有哪些适合用if-else或多个if语句,因为[65,85]是区间
而判断一个学生的班级是一班、二班还是三班适合用switch语句,因为一班、二班、三班是离散值
(3) 扩展
所有的switch语句都可以用if-else或多个if语句来替换(因为if-else语句只需对每个离散值分别做判断即可),而并不是所有的if-else或多个if语句都可以用switch语句来替换(因为区间里值的个数是无限的并且switch所接受的值只能是整型或枚举型,所以不能用case来一一列举)。
2.对其他你认为需要进行总结的内容进行总结
我觉得if,else一个的时候还好点,多的时候特别容易混,可以将他们错开,每个和每个对齐,这样不容易搞混。能尽量少就少一个。逻辑思维好一点,尽量简短以哦点。
链接:https://zhidao.baidu.com/question/557831030.html
(三)实验总结
1 成绩转换
(1)题目
本题要求编写程序将一个百分制成绩转换为五分制成绩。转换规则:
大于等于90分为A;
小于90且大于等于80为B;
小于80且大于等于70为C;
小于70且大于等于60为D;
小于60为E。
(2)流程图

(3)源代码

问题:还是存在漏写分号等情况。
原因:不用心
解决办法:写完一行检查一行。看有没有这种错误。
(4)pta截图

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


(3)源代码

(4)pta截图

问题:三角形判断公式不知道呢。
原因:这个知识不会
解决办法:网上查了一下。
7 两个数的简单计算器
(1)题目
本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。
(2)流程图

(3)源代码

问题:char op;
原因:char op;
解决办法:这个注意用它,这类计算器问题记得用它。
(4)pta截图

9 求一元二次方程的根
(1)题目
本题目要求一元二次方程的根,结果保留2位小数。
(2)流程图


问题:这个题不会,没思路,并且考虑也不到位,不全面。
原因:这个题真的难。
解决办法:问了问同学,又在网上查了查,才做完。
(4)pta截图

(四)博客互评

http://www.cnblogs.com/LLIU/p/7765845.html
http://www.cnblogs.com/8426224ll/p/7769227.html
http://www.cnblogs.com/Sankinv587/p/7788140.html

posted @ 2017-11-05 19:49  付佳伟。  阅读(425)  评论(0编辑  收藏  举报