作业要求:【https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2293】
第三次作业:7-7计算火车运行时间
本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。
输入格式:
输入在一行中给出2个4位正整数,其间以空格分隔,分别表示火车的出发时间和到达时间。每个时间的格式为2位小时数(00-23)和2位分钟数(00-59),假设出发和到达在同一天内。
输出格式:
在一行输出该旅途所用的时间,格式为“hh:mm”,其中hh为2位小时数、mm为2位分钟数。
#include<stdio.h> int main() { int a,b,c,d; scanf("%d %d",&a,&b); if(a%100>b%100)
{ c=b/100-1-a/100; d=b%100+60-a%100; } else{ c=b/100-a/100; d=b%100-a%100; }
printf("%02d:%02d",c,d); return 0; }
解题思路
第一步:先定义四个变量a,b,c,d。
第二步:之后输入a和b的值,a表示出发时间,b表示到达时间。
第三步:之后用else-if语句区分d为负数的情况,若d<0,则向前借一位。
第四步:最后输出c和d的值,程序结束。
程序框图:
错误情况:不借位,结果如下
解决方法:需要加入if(m<0),才能进行借位
结论:通过这次作业,我发现在程序编写上我还有很多不足。
第四次作业
7-2 高速公路超速处罚
按照规定,在高速公路上行使的机动车,达到或超出本车道限速的10%则处200元罚款;若达到或超出50%,就要吊销驾驶证。请编写程序根据车速和限速自动判别对该机动车的处理。
#include<stdio.h> int main() { double a,b; int exceed;
scanf("%d %d",&a,&b); exceed=(a-b)/b*100+0.5; if(exceed<10){
printf("OK "); } else if(exceed<50)
{
printf("Exceed %d%%. Ticket 200 ", exceed); } else { printf("Exceed %d%%. License Revoked ", exceed); } return 0; }
解题思路
首先定义两个双精度浮点型数据a,b;一个整形变量exceed;
输入a,b,判断exceed的范围并进行不同的语句,最后输出结果。
程序框图
错误情况:当定义的两个变量不是double型的时候,会出现错误。
解决办法:定义为double型,这时会发现输入200 120时输出的是66%,与答案差了1%,输出的%无法输出,应该用%%进行输出。
结论:通过这道题我知道了仔细阅读题目的重要。
总结
这两周主要学习了if-else语句,虽然有难度,但只要我认真去学,我相信自己能行。
【http://www.cnblogs.com/wanghaoze/p/9914672.html】
【http://www.cnblogs.com/songxiaocun/p/9914882.html】
【http://www.cnblogs.com/1banwangkang/p/9914573.html】