洛谷【深基2.例12】上学迟到题目

###洛谷【深基2.例12】上学迟到题目
学校和 yyy 的家之间的距离为 ss 米,而 yyy 以 vv 米每分钟的速度匀速走向学校。

在上学的路上,yyy 还要额外花费 1010 分钟的时间进行垃圾分类。

学校要求必须在上午 8:008:00 到达,请计算在不迟到的前提下,yyy 最晚能什么时候出门。

由于路途遥远,yyy 可能不得不提前一点出发,但是提前的时间不会超过一天。
输入格式

一行两个正整数 s,vs,v,分别代表路程和速度。
输出格式

输出一个 2424 小时制下的时间,代表 yyy 最晚的出发时间。

输出格式为 HH:MMHH:MM,分别代表该时间的时和分。必须输出两位,不足前面补 00。

#include <stdio.h>
using namespace std;
#include <math.h>
int main(){
    double s,v;
    double use=10.0;
    scanf("%lf %lf",&s,&v);
    use=use+s/v;
    //printf("%lf",use);
    int value;
    value=ceil(use);
    //printf("%d",value);
    int hour,minute;
    hour=value/60;
    minute=value%60;
    if(minute>0){
        
        minute=60-minute;
        if(7-hour<0){
        hour=7-hour+24;
        }else{
        hour=7-hour;
        }
        //小于不是小于等于
        if(hour<10){
        printf("0%d:",hour,minute);
        }else{
        printf("%d:",hour,minute);
        }

        if(minute<10){
            printf("0%d",minute);
        }else{
            printf("%d",minute);
        }
    }else{
            if(8-hour<0){
            hour=8-hour+24;
            }else{
            hour=8-hour;
            }
//小于不是小于等于
              if(hour<10){
                printf("0%d:00",hour);
                }else{
                printf("%d:00",hour);
                }
            

    }


    }

####代码问题(给出的代码已经改进问题):
错误问题1:分钟在判断没有添加0;
错误问题2:hour判断是小于10不是小于等于10
代码改进1:将分钟和小时进行合并考虑而不是分开考虑

####改进后的代码

#include <stdio.h>
using namespace std;
#include <math.h>
int main(){
    double s,v;
    double use=10.0;
    scanf("%lf %lf",&s,&v);
    use=use+s/v;
    //printf("%lf",use);
    int value;
    value=ceil(use);
    //printf("%d",value);
    
    //这里是8*60-value 而不是value-80*60;
    value=8*60-value;
    if(value<0){
        value=value+24*60;
    }

    int hour,minute;
    hour=value/60;
    minute=value%60;
    if(hour<10){
        if(minute<10){
            printf("0%d:0%d",hour,minute);

        }else{
            printf("0%d:%d",hour,minute);

        }

    }else{
        printf("%d:%d",hour,minute);

    }
    

}

####代码错误1:value=8*60-value; 之前赋值错误,顺序高错了

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值