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;
}
对源程序进行编译:
错误原因:
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语言程序设计实验第四次作业的更多相关文章
- C语言程序设计实验报告四
C程序设计实验报告 姓 名:赖瑾 实验地点:家 实验时间:2020年4月9日 实验项目:5.3.1练习2 求数列的前n项和 5.3.2练习2 求水仙花数 5.3.4 十进制转换 5.3.5练习1 百马 ...
- 《Java程序设计》十四次作业
<Java程序设计>十四次作业实验总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结与数据库相关内容. 3. 代码量统计 周次 总代码量 新增代码量 总文件数 新增 ...
- 《C语言程序设计(第四版)》阅读心得(一)
本篇开始写我个人觉得谭浩强老师的<C语言程序设计(第四版)>中之前没有认识到,或者忘了的知识.因为本科学过,所以有些简单的东西就没有放进来了,所以可能并不是太全面. 第一章程序设计与语言 ...
- 160809208沈昊辰c语言程序设计实验选择结构设计
<C语言程序设计>实验报告 学 号 160809208 姓 名 沈昊辰 专业.班 计科16-2班 学 期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C区二层机房 ...
- 160809209_李梦鑫_C语言程序设计实验3 循环结构程序设计
<C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学 期 2016-2017 第1学期 指导教师 黄俊莲 吉吉老师 实验地点 C05 ...
- 160809209_李梦鑫_C语言程序设计实验2+选择结构程序设计_进阶
<C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学 期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C05 机 ...
- C语言程序设计实验报告三
C程序设计实验报告 姓 名:张美盛 实验地点:家 实验时间:2020年3月29日 实验项目:4.3.1 If语句的应用 4.3.2 switch-case的应用 4.3.3 switch-case嵌套 ...
- Python程序设计实验报告四:循环结构程序设计(设计型实验)
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 姚彩琴 学号3190505129 成绩 日期 2020.4.8 指导老师 修宇 [实验名称 ...
- C语言程序设计实验报告(第一次实验)
C程序设计实验报告 实验项目:C语言程序设计教程实验1.3.2:1.3.3:1.3.4:2.3.1:2.3.2 姓名:赖瑾 实验地点:家 实验时间:2020.2.25 目录 C程序设计实验报告 一.实 ...
随机推荐
- 火车头采集器对接织梦cms图集发布时, 采集网上图片超时的解决方法
背景介绍: 火车头采集器对接织梦cms图片集发布时, 对于多张(超过30张)大图片时, 经常会出现图集发布超时的情况. 问题分析: 因为php对于资源的处理有默认的超时时间30秒, 而我尝试了好多方 ...
- 使用pie.htc时Border-radius的兼容
如果一个图层中(navin)使用了pie.htc来对ie6,7,8进行兼容,如若上一层(navwrap)的样式中有背景的属性,则此层 (navin) 在ie6,7,8中背景颜色不显示.如下图:此部分的 ...
- node.js的安装的配置
一.Node.js 安装配置 Node.js 提供在Windows和Linux上安装 1. Window 上安装Node.js 64 位安装包下载地址 : https://nodejs.org/di ...
- 说说cglib动态代理
前言 jdk中的动态代理通过反射类Proxy和InvocationHandler回调接口实现,要求委托类必须实现一个接口,只能对该类接口中定义的方法实现代理,这在实际编程中有一定的局限性. cglib ...
- SpringBoot的RestController vs @ResponseBody + @Controller
@Controller和@RestController的区别?官方文档:@RestController is a stereotype annotation that combines @Respon ...
- api-gateway实践(01)服务网关 - 原型功能
一.服务注册 1.增加组:LsqGrpA 2.增加版本:LsqVerA 3.增加api:LsqApiA 3.1.基本信息 3.2.前端定义 3.3.后端定义 二.服务上线和服务授权 1.服务上线 2. ...
- android studio 何如修改报名
1. 重命名办法,网上很多见 2. 对于需要重新修改包名的级别的 a. 修改package 和 gradle 的包名,对应一致. b. 修改R 所在包名,使用crtl+n修改R文件的路径 c. 手动首 ...
- ubuntu16.04下安装chrome
1.在终端中,输入以下命令: sudo wget http://www.linuxidc.com/files/repo/google-chrome.list -P /etc/apt/sources.l ...
- android 加速度传感器 ---摇一摇
package com.eboy.testyaoyiyao;import java.text.SimpleDateFormat;import java.util.Date;import android ...
- UVA-10037 Bridge---过河问题进阶版(贪心)
题目链接: https://vjudge.net/problem/UVA-10037 题目大意: N个人夜里过河,总共只有一盏灯,每次最多过两个人,然后需要有人将灯送回 才能继续过人,每个人过桥都需要 ...