(一)改错题

输出三角形的面积和周长,输入三角形的三条边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;
}

对源程序进行编译:

错误原因:

area=语句最后缺一个小括号。

改正方法:

在area=语句最后加上小括号。

错误原因:

if语句缺大括号

改正方法:

if后几条语句加上大括号

验证样例1



验证样例2



明显出现错误,与样例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.对其他你认为需要进行总结的内容进行总结。

该章节学习了switch...case语句,在用switch语句时,总是忘记加break。

(三)实验总结

本次实验总结,学号末位数是单数的同学完成选择结构(2)中的1、5、7、9题,学号末位数是双数的同学完成选择结构(2)中的2、4、6、8题。

格式如下:

1

(1)题目

7-2 比较大小(10 分)

本题要求将输入的任意3个整数从小到大输出。

(2)流程图

(3)源代码

include<stdio.h>

int main()

{

int x,y,z,temp;

scanf("%d %d %d",&x,&y,&z);

if(x>y)

{ temp=x;

x=y;

y=temp;

}

if(x>z)

{

temp=z;

z=x;

x=temp;

}

if(y>z)

{

temp=y;

y=z;

z=temp;

}

printf("%d->%d->%d",x,y,z);

return 0;

}

(4)实验分析

问题:再做流程图时总是无法输出结果

原因:总忘记数字前后加+和‘“”

解决办法:记得加上+“”

(5)本题PTA提交列表



2

(1)题目

7-4 高速公路超速处罚(10 分)

按照规定,在高速公路上行使的机动车,超出本车道限速的10%则处200元罚款;若超出50%,就要吊销驾驶证。请编写程序根据车速和限速自动判别对该机动车的处理。

(2)流程图

(3)源代码

include<stdio.h>

int main()

{

int a,b;

double z;

scanf("%d %d",&a,&b);

z=(double)(a-b)/(double)b*100;

if(z<10&&a>b)

{

printf("OK");

}

if(z>=10&&z<50)

{

printf("Exceed %0.f%%. Ticket 200",z);

}

if(z>=50)

{

printf("Exceed %0.f%%. License Revoked",z);

}

return 0;

}

(4)实验分析

问题:在小于百分之十时应该输出OK,但是由于没有加引号,找不到结果没有办法输出。

解决办法:

在OK输出框内加上引号。

(5)本题PTA提交列表



3

(1)题目

7-6 计算油费(10 分)

现在90号汽油6.95元/升、93号汽油7.44元/升、97号汽油7.93元/升。为吸引顾客,某自动加油站推出了“自助服务”和“协助服务”两个服务等级,分别可得到5%和3%的折扣。

本题要求编写程序,根据输入顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助),计算并输出应付款。

(2)流程图

(3)源代码

include<stdio.h>

int main(void)

{

int a,b,c;

double m;

scanf("%d%d %c",&a,&b,&c);

switch(b)

{

case 90:

m = 6.95 * a;

break;

case 93:

m = 7.44 * a;

break;

default:

m = 7.93 * a;

break;

}

if(c == 'm')

{

m = m * 0.95;

}

else

{

m = m * 0.97;

}

printf("%.2f",m);

return 0;

}

(4)实验分析

问题:无

(5)本题PTA提交列表



4

(1)题目

7-8 12-24小时制(10 分)

编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。

(2)流程图

(3)源代码

include<stdio.h>

int main(void)

{

int a,b;

char c;

scanf("%d%c%d",&a,&c,&b);

if(a>12)

{

a=a-12;

printf("%d:%d PM",a,b);

}

else if(a12)

{

printf("%d:%d PM",a,b);

}

else

{

printf("%d:%d AM",a,b);

}

return 0;

}

(4)实验分析

问题:if语句中a12写成了a=12

解决办法:等于号相对大于小于不同,需写成==

(5)本题PTA提交列表



(四)博客互评

郭zx同学:http://www.cnblogs.com/1234569ss/p/7754274.html

不知o同学:http://www.cnblogs.com/panjiupeng/p/7777538.html

慕容紫落同学:http://www.cnblogs.com/ziluo/p/7780500.html

C语言程序设计实验第四次作业的更多相关文章

  1. C语言程序设计实验报告四

    C程序设计实验报告 姓 名:赖瑾 实验地点:家 实验时间:2020年4月9日 实验项目:5.3.1练习2 求数列的前n项和 5.3.2练习2 求水仙花数 5.3.4 十进制转换 5.3.5练习1 百马 ...

  2. 《Java程序设计》十四次作业

    <Java程序设计>十四次作业实验总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结与数据库相关内容. 3. 代码量统计 周次 总代码量 新增代码量 总文件数 新增 ...

  3. 《C语言程序设计(第四版)》阅读心得(一)

    本篇开始写我个人觉得谭浩强老师的<C语言程序设计(第四版)>中之前没有认识到,或者忘了的知识.因为本科学过,所以有些简单的东西就没有放进来了,所以可能并不是太全面. 第一章程序设计与语言 ...

  4. 160809208沈昊辰c语言程序设计实验选择结构设计

    <C语言程序设计>实验报告 学 号 160809208 姓 名 沈昊辰 专业.班 计科16-2班 学    期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C区二层机房 ...

  5. 160809209_李梦鑫_C语言程序设计实验3 循环结构程序设计

    <C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学    期 2016-2017 第1学期 指导教师 黄俊莲 吉吉老师 实验地点 C05 ...

  6. 160809209_李梦鑫_C语言程序设计实验2+选择结构程序设计_进阶

    <C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学    期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C05 机 ...

  7. C语言程序设计实验报告三

    C程序设计实验报告 姓 名:张美盛 实验地点:家 实验时间:2020年3月29日 实验项目:4.3.1 If语句的应用 4.3.2 switch-case的应用 4.3.3 switch-case嵌套 ...

  8. Python程序设计实验报告四:循环结构程序设计(设计型实验)

    安徽工程大学 Python程序设计 实验报告 班级   物流191   姓名  姚彩琴  学号3190505129 成绩 日期     2020.4.8     指导老师       修宇 [实验名称 ...

  9. C语言程序设计实验报告(第一次实验)

    C程序设计实验报告 实验项目:C语言程序设计教程实验1.3.2:1.3.3:1.3.4:2.3.1:2.3.2 姓名:赖瑾 实验地点:家 实验时间:2020.2.25 目录 C程序设计实验报告 一.实 ...

随机推荐

  1. 学习UI的总结

    学习前端有一段时间了,一直在看书上的理论知识,而实战项目却很少.老师常说,想要知道自己的实力有多少,知识掌握了多少,最好的方法就是去实践了,实践出真知嘛.于是在学习中,总要是通过项目的实践以及理论知识 ...

  2. Python之旅.第三章.函数3.29

    一.无参装饰器 1 开放封闭原则 软件一旦上线后,就应该遵循开放封闭原则,即对修改源代码是封闭的,对功能的扩展是开放的 也就是说我们必须找到一种解决方案: 能够在不修改一个功能源代码以及调用方式的前提 ...

  3. Andrew Ng机器学习第一章——初识机器学习

    机器学习的定义 计算机程序从经验E中学习,解决某一任务T.进行某一性能度量P,通过P测定在T上的表现因E而提高. 简而言之:程序通过多次执行之后获得学习经验,利用这些经验可以使得程序的输出结果更为理想 ...

  4. 你能选择出,前几个元素吗?使用纯css

    面试被问到 ,你能选择出前几个元素吗?括弧只能使用css 我当时是一脸懵逼... 回去的路上思考一路 终于想到了解决办法 虽然为时已晚 但是觉得很有意义... 首先要用到 否定选择器 : :not() ...

  5. Spring Security 入门(1-2)Spring Security - 从 配置例子例子 开始我们的学习历程

    1.Spring Security 的配置文件 我们需要为 Spring Security 专门建立一个 Spring 的配置文件,该文件就专门用来作为 Spring Security 的配置. &l ...

  6. YML(1)什么是 YML

    YAML(IPA: /ˈjæməl/,尾音类似camel骆驼) YAML 是一个可读性高,用来表达资料序列的编程语言. YAML参考了其他多种语言,包括:XML.C语言.Python.Perl以及电子 ...

  7. java线程池01-ThreadPoolExecutor构造方法参数的使用规则

    为了更好的使用多线程,JDK提供了线程池供开发人员使用,目的在于减少线程的创建和销毁次数,以此达到线程的重复利用. 其中ThreadPoolExecutor是线程池中最核心的一个类,我们先简单看一下这 ...

  8. css回顾之左侧宽度自适应布局

    目标: <!DOCTYPE html> <meta charset=utf-8> <html> <head> <title>alibaba& ...

  9. 云+社区技术沙龙:Kafka meetup 深圳站报名开启

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 如果说 2018 年是技术大爆炸年,那么 Apache Kafka 绝对是其中闪亮的新星. 自Kafka 从首发之日起,已经走过了快八个年头 ...

  10. 【WebGL入门】画一个旋转的cube

    最近搜罗了各种资料,发现WebGL中文网特别好用,很适合新手入门:http://www.hewebgl.com/article/getarticle/50 只需要下载好需要的所有包,然后用notepa ...