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

posted on 2017-11-01 11:05  风离你在  阅读(838)  评论(4编辑  收藏  举报

导航