(一)改错题
输出三角形的面积和周长,输入三角形的三条边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
源程序(有错误的程序)
{ 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:
错误原因1:语句结束没有分号
改正方法1:在语句末加上分号
错误信息2:
错误原因2:少了一个)
改正方法2:在分号前加上)
错误信息3:
错误原因3:if后的语句多加了分号,而且if内的几条语句应在{}里
改正方法3:将分号去掉,加上{}
错误原因4:次语句错误,这三个条件应都满足才可.
改正方法4:将||改为&&
运行成功!
(二)学习总结
1.在编程解决问题的过程中,我们会用到多个if语句,if...else if... 语句以及switch语句,查阅资料,总结一下这三种情况的区别何在,并分别举例加以说明
if语句和if...else if语句有很大区别,简而言之,if语句会逐个判断是否满足条件,而 if ...else if只要满足条件则跳出,不再对其后的语句判断了。当所需判断的条件很多时,可以使用switch case语句提高运行效率。
参考资料地址:http://www.cnblogs.com/wankun/p/4989831.html
2.总结
switch case语句中,要特别注意格式的要求,case后要记得输空格,还有跳出swith要有break!
(三)实验总结
1.成绩转换
1.成绩转换
(1)题目:本题要求编写程序将一个百分制成绩转换为五分制成绩。
转换规则: 大于等于90分为A; 小于90且大于等于80为B; 小于80且大于等于70为C; 小于70且大于等于60为D; 小于60为E;
(2)流程图
(3)源代码
(4)实验分析
此题考查swith case语句的高效性,注意break的使用
5、三角形判断
(1)题目:给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),检验它们能否构成三角形。
(2)流程图
(3)源代码
(4)实验分析
不忘忘记加数学函数
7、两个数的简单计算器
(1)题目:本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。
(2)流程图
(3)源代码
(4)实验分析
了解熟悉分支结构的使用及注意事项!
9、求一元二次方程的根
(1)题目:本题目要求一元二次方程的根,结果保留2位小数
(3)源代码
(四)博客互评
http://www.cnblogs.com/ziluo/p/7780500.html
http://www.cnblogs.com/xiaoqi1/p/7784570.html
http://www.cnblogs.com/xing--/p/7764421.html