https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2292
第三次作业
7-7 计算火车运行时间 (15 分)
本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。
输入格式:
输入在一行中给出2个4位正整数,其间以空格分隔,分别表示火车的出发时间和到达时间。每个时间的格式为2位小时数(00-23)和2位分钟数(00-59),假设出发和到达在同一天内。
输出格式:
在一行输出该旅途所用的时间,格式为“hh:mm”,其中hh为2位小时数、mm为2位分钟数。
输入样例:
1201 1530
输出样例:
03:29
1.实验代码
#include<stdio.h> int main() { int a,b,m,n; scanf("%d %d",&a,&b); m=b/100-a/100; n=b%100-a%100; if(n<0){n=60+n; m=m-1; } printf("%.2d:%.2d",m,n); return 0; }
2.设计思路
第一步:明确将小时和分钟分开算,定义变量。
第二步:小时数是两个四位数除以100后取整作差,分钟数是两个四位数除以100取余后作差。
第三步:这里要做一个判断,如果分钟数减下来是负的,那么要向小时数借“1”,即加上60mins再减。
流程图
3.本题调试过程碰到问题及解决办法.
我是一个喜欢仔细审题然后再做的人,因为我觉得不审题直接做反而会事倍功半。
仔细阅读题目后,我发现了本题中几个重要的突破点:1.借位是60,不是100。 2.取余的方法,或者说取余怎么用字符表示。
第2个点我查了资料,关键字是devC++怎么"取余",并无词条。后来我问了表哥(他是本专业已毕业四年的),得知是用%表示。
7-3 出租车计价 (15 分)
本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:
- 起步里程为3公里,起步费10元;
- 超起步里程后10公里内,每公里2元;
- 超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
- 营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。
输入格式:
输入在一行中给出输入行驶里程(单位为公里,精确到小数点后1位)与等待时间(整数,单位为分钟),其间以空格分隔。
输出格式:
在一行中输出乘客应支付的车费(单位为元),结果四舍五入,保留到元。
输入样例1:
2.6 2
输出样例1:
10
输入样例2:
5.1 4
输出样例2:
14
输入样例3:
12.5 9
输出样例3:
34
1.实验代码
#include<stdio.h> int main(){ int t; double x,y; scanf("%lf %d",&x,&t); if (t<5){ if (x<=3){ y = 10; } else if (3<x && x<=10){ y = 10+(x-3)*2+0.5; } else if (x>10){ y = 10+7*2+(x-10)*3+0.5; } } else{ if (x<=3){ y = 10+t/5*2+0.5; } else if (3<x && x<=10){ y = 10+(x-3)*2+(t/5)*2+0.5; } else if (x>10){ y = 10+7*2+(x-10)*3+(t/5)*2+0.5; } } printf("%d",(int)y); return 0; }
2.设计思路
第一步:不同的路程区间,有不同的收费标准,同时如果停车,要另外计算时间的费用。
第二步:使用if else语句
流程图
3.本题调试过程碰到问题及解决办法.
我的初始代码中没有“+0.5”这一项,所以只是部分正确。
由上图可以看出,当x>10时,结果就不对了。当时,怎么也想不通这个问题,后来通过问同学和查资料,发现“ 浮点数结果加0.5结合强转即可四舍五入”。
于是我在后面加上了0.5,再次进行编译、调试,得到了结果。
4.个人总结.
(1)这两周主要学习了条件语句以及条件语句中的一些思维方法,以及定义条件时的一些技巧。
(2)明白困难是一定会遇到的,遇到困难不要纠结痛苦,要学会独立思考,查阅相关资料,解决问题才是真的。
博客字数、代码行数统计:
作业点评:
http://www.cnblogs.com/xiaofengqaq/p/9845665.html