50分求助大佬

P5707 【深基2.例12】上学迟到

Addams @ 2023-10-16 18:14:07

#include <stdio.h>
int main()
{
    int s, v, t, h, m, HH = 7, MM = 60;

    scanf("%d %d", &s, &v);
    // 计算路程上花费的时间
    if (s % v == 0)
    {
        t = s / v + 10;
    }
    else
    {
        t = s / v + 11;
    }
    // 确保提前的时间不会超过一天
    while (t >= 1440)
    {
        t = t - 1440;
    }
    // 将时间转化为几小时几分钟
    h = t / 60;
    m = t % 60;
    // 计算最晚出发时间
    HH = HH - h;
    MM = MM - m;
    // 输出
    printf("%02d:%d", HH, MM);

    return 0;
}

by farbehind @ 2023-10-16 23:30:30

时间不超过一天是题目给的 本题三个关键点 1.s能否整除v,不能整除需要加一 2.过了8h,需要到昨天,总时间变成了8+24=32h 计算时需要以8h为分界点 3.输出两位,不足要用0不足 下面是我的代码

#include<stdio.h>
int main(){
int s,v,t1,t2,t3;
scanf("%d%d",&s,&v);
//判断是否路程整除速度
if(s%v==0)
t1=s/v+10;
else
t1=s/v+11;
//以480min为分界点
if(t1<480)
{t1=480-t1;
t2=t1/60;
t3=t1%60;
}
else
{t1=1920-t1;
t2=t1/60;
t3=t1%60;
}
//满足输出两位
if(t2<10&&t3>=10)
printf("0%d:%d",t2,t3);
else if(t2<10&&t3<10)
printf("0%d:0%d",t2,t3);
else
printf("%d:%d",t2,t3);
return 0;}

by hhhhhhoioi @ 2023-10-22 15:58:02

@farbehind 有没有t2>=10 t3<10的情况呢?


by farbehind @ 2023-10-28 00:01:32

@hhhhhhoioi 有的有的,是我欠考虑了

else if(t2>=10&&t3<10)
printf("%d:0%d",t2,t3);

再加一下这个就行


|