代码改变世界

第2次作业

2018-11-06 19:04  张子峰  阅读(376)  评论(4编辑  收藏  举报

 

 

 作业要求:【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\n"); } else if(exceed<50)
{
printf(
"Exceed %d%%. Ticket 200\n", exceed); } else { printf("Exceed %d%%. License Revoked\n", 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】