cpp蒟蒻卡70了不知为何不过

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

longmouses @ 2024-08-03 19:47:17

#include<bits/stdc++.h>
using namespace std;
int s,v;int t;
struct formatTime{
    int H;
    int M;
};
void substractFormatTime(formatTime& src,int b){
    for(;b;b--){
        if(src.M<=0){
            if(src.H<0){src.H=24;}
            src.H--;src.M=59;
        }
        else{
            src.M--;
        }
    }
}
int main(){
    ios::sync_with_stdio(false);
    cout.tie(nullptr);cin.tie(nullptr);
    cin>>s>>v;

    t=s/v;
    t+=(s%v)?11:10;
    formatTime ans; ans.H=8;ans.M=0;
    substractFormatTime(ans,t);
    cout<<((ans.H<10)?'0':'\0')<<ans.H<<':'<<((ans.M<10)?'0':'\0')<<ans.M;
    return 0;
}

我的思路是

  1. 输入时直接除,然后下一步判断是否整除一并把垃圾分类和额外的一分钟加回去
  2. 用结构体作为时间单位,创建一个8:00的格式化时间,在substractFormatTime中完成计算
    • b是减去的时间,用for循环每次检测如果分小于0就归零分并减去一小时,小时不够了就归零到23:59。如果以上检测都通过就正常减一分钟
  3. 最后,判断是否补零,最后输出

反复调试后我未发现是什么问题,卡在后三个测试点上而无法通过,希望大佬指教一下


|