【作业要求】https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2292
第四次作业 题目7-3 出租车计价
1.实验代码
#include<stdio.h>
int main()
{
int min;
double km,pricea,priceb,pricec;
scanf("%lf %d",&km,&min);
if(km<=3){
pricea=10;
}
else if(km<=10){
pricea=(km-3)*2.0+10;
}
else{
pricea = 10 + (10 - 3)*2.0 + (km - 10)*3.0;
}
priceb=min/5*2;
pricec=pricea+priceb;
printf("%.0f\n",pricec);
return 0;
}
2.解题思路
(1)题目算法:
第一步:设置整型变量min(等待时间)和浮点型变量km(公里),pricea(行驶里程费用)
priceb(临时停车费用)以及pricec(总费用);
第二步:用if语句计算里程费用与行驶里程的关系,if语句结束后计算若有临时停车时,所产生相应费用,
最后由“pricec=price+priceb”输出总费用,即乘客应支付的车费。
(2)流程图:
3.调试过程遇到问题:
题目理解错误,没有理解语句“超过10公里以上的部分加收50%的回空补贴费,即每公里3元;一句中“超过”
一词的含义,10公里内应为“<=10”,然而在初次编写时else if语句中给的条件却是(km<10),因此在调试时当输
入“10 0”时执行语句13(pricea = 10 + (10 - 3)*2.0 + (km - 10)*3.0;),如下:
正确做法应为else if(k<=10),修正后在调试过程中输入10 0时会运行语句10,如下:
其次是应注意车费(pricea)在题干中要求应输出四舍五入,保留的元的值,而我将车费设置成了整型变量,因此输出格式错误,
例如,当我输入k=4.9,min=0时,正确结果应为13.8。而运行结果如下所示:
因此,应将费用pricea,parceb,pricec改为浮点型变量,且输出结果是”.0f“,这样输入同一组数据才能
四舍五入输出正确答案14:
第三次作业 题目7-7 计算火车运行时间
#include<stdio.h>
int main()
{
int a,b,h,min;
scanf("%d %d",&a,&b);
h=b/100-a/100;
min=b%100-a%100;
if(min>=0){
printf("%02d:%02d\n",h,min);
}
else{
h=h-1;
min=min+60;
printf("%02d:%02d\n",h,min);
}
return 0;
}
第一步:设置整型变量a(出发时间),b(到达时间),h(小时),min(分钟),应题目要求,输入格式为XXXX
(例如,出发时间为13:24应输入1324)
第二步:输入变量/100取整得h,%100取余得min;
第三步:min<10时向h借1,运行else语句
第一次时没有考虑到借位问题,当输入出发时间的分钟数值大于到达时间的分钟数值(如1355 1401)
调试时得出结果错误:
因此我添加if else语句,当min>=0时无需借位,直接运算(
h=h-1;
min=min+60;
)后输出结果
当min<0时,运行else语句:
得出正确结果:
二、总结和学习进度
在第二次,第三次作业时主要有两个问题,一是对于题目要求不注重细节,例如输出格式的空格,分号等标点
没有看清,导致多次提交显示格式错误,其次是对于if else语句运用不理想,嵌套时没有注意条件,另外有些
知识点通过上网查询后得以总结,作pta时也请教过同学,日后的学习中应提前预习,写代码时注意细节。
表格
折线图
作业点评:
1,“http://www.cnblogs.com/xiaofengqaq/p/9845665.html”
2,"http://www.cnblogs.com/0224ming/p/9859207.html"
3,“http://www.cnblogs.com/zjy5201314/p/9900818.html“