C语言程序设计第四次作业
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
源程序图:
对源程序进行编译:
发现源程序第13行中缺少了一个括号,初始的括号没有括回。
经改正,将括号括回,继续进行编译:
发现源程序中第17行的“else”上面的“if”后面缺少了“{}”,
经改正,将“{}”添加上,继续进行编译:
无错误,继续运行:
与样例1相符;
当输入值为样例2是发现错误,经检查发现,判断是否为三角形时条件编写错误,
经改正“( a + b > c && b + c > a && a + c > b)”;
编译运行,并输入样例2:
运行结果正确。
(二)学习总结
1.在编程解决问题的过程中,我们会用到多个if语句,if...else if... 语句以及switch语句,查阅资料,总结一下这三种情况的区别何在,并分别举例加以说明。
if语句,if else if语句和switch case语句都属于流程控制语句。当判断条件比较少时应用if会比其他两个要方便,当条件比较多时应该用另外两种。当使用多个if语句时会对每个语句都进行判断;对于if.....else if语句的使用会在满足一个条件后终止判断,只处理一个满足条件的语句。在多个判断条件的情况下,使用if...else if语句相对于使用多个if语句而言,可以减少程序的判断次数,提高效率。在进行多个条件判断时还可以使用switch...case,有时候还会比if...else if更加好用,例如判断那年中某月的天数,应用switch...case。 所有的switch语句都可以用if-else语句来替换(因为if-else语句只需对每个离散值分别做判断即可),而并不是所有的if-else语句都可以用switch语句来替换(因为区间里值的个数是无限的并且switch所接受的值只能是整型或枚举型,所以不能用case来一一列举)。switch...case与if...else if的根本区别在于,switch...case会生成一个跳转表来指示实际的case分支的地址,而这个跳 转表的索引号与switch变量的值是相等的。从而,switch...case不用像if...else if那样遍历条件分支直到命中条件,而只需访问对应 索引号的表项从而到达定位分支的目的。
(http://www.cnblogs.com/wankun/p/4989831.html)
2.对其他你认为需要进行总结的内容进行总结。
字符常量定义:用单引号括起来的单个普通字符或转义字符。字符常量的值:该字符的ASCII码值。字符型变量用来存放字符变量,只能放一个字符,一个字符变量在内存中占一个字节。如: char c1; c1 = ‘H’。一个字符数据既可以以字符形式输出,也可以以整数形式输出。char与int数据之间可进行算数运算。字符型数据和整型数据是通用的,他们既可以用字符形式输出(“%c”),也可以用整数型(“%d”)。
(三)实验总结
1.比较大小
(1)题目:本题要求将输入的任意3个整数从小到大输出。
(2)流程图:
(3)源代码:
(4)实验分析:
本题目为比较三个数的大小,因事先不知道输入的具体数值,所以需要定义一个未知数,在比较时作为存储器具,然后将两个数进行数值调换,分三组数据进行判断,最后输出即可。
(5)本题PTA提交列表
2.高速公路超速处罚
(1)题目:按照规定,在高速公路上行使的机动车,超出本车道限速的10%则处200元罚款;若超出50%,就要吊销驾驶证。请编写程序根据车速和限速自动判别对该机动车的处理。
(2)流程图:
(3)源代码:
(4)实验分析:
在编写本题时,其中的吊销驾照的情况由于输出格式错误,改正了很多次才通过,编写时一定要按找题目中的要求进行输出。
(5)本题PTA提交列表
3.计算油费
(1)题目:本题要求编写程序,根据输入顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助),计算并输出应付款。
(2)流程图:
(3)源代码:
(4)实验分析:
本题并不算难题,只要理清思路,将每种情况进行排列编译即可。
(5)本题PTA提交列表
4. 12-24小时制
(1)题目:编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。
(2)流程图:
(3)源代码:
(4)实验分析:
一开始编译时将输出格式编写错误,导致整个程序多种错误,经过改正后提交发现有一种情况没有考虑进去,没有得到满分,理顺思路后将该情况编译进去再次提交答案正确。在编写时要将每种情况都要考虑进去。
(5)本题PTA提交列表
(四)博客互评
对王映丹同学博客园的评价:
该同学的图片格式看起来不是很工整,是整篇文章看起来没那么整洁。对于文章内容来说流程图与源代码的编译都很清晰,但对于每道题的错误分析并不是很好,比较简单。
http://www.cnblogs.com/windsky-1999/p/7765579.html
对蕊薏同学的博客园的评价:
该同学在关于if,else..if,switch三者的区分上描述的很详细,让人很容易去看懂,其它的内容也是不错的,排版也很清晰。
http://www.cnblogs.com/123ruike/p/7780510.html
对孤寂一粒沙同学的博客园的评价:
该同学在改错题中没有添加原错误代码的编写图,应该加上,使题目更加清晰可见。对于if,else..if,switch三者的区分上有举例子的环节,时区分应用在实践上,使读者更容易了解三者的分别。
http://www.cnblogs.com/HGD980425/p/7773662.html