有大佬帮忙看看为什么只有70分吗

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

@[kingOIER](/user/808143) 你没考虑h减完之后小于0的情况,比如8:00减去9h,10min 应该等于 22:50 而非0-2:50
by s47rsl @ 2023-04-13 18:03:39


@[s47rsl](/user/990167) 我不是通过判断来避免这种情况了吗? 你能帮我按你的想法改一下我的程序吗?
by kingOIER @ 2023-04-14 16:59:11


@[kingOIER](/user/808143) 哦确实,你加判断了。我没看明白你这个思路,你可以试试输入5400 10 ,这个案例正好是9个小时,再加10min,结果应该正好是22:50,但你这个输出是23:49,另外你第8行t为什么+1呢。\ 没思路可以看下我的,我专门给你写了详细注释: ```cpp #include<iostream> using namespace std; int main(){ double s,v; cin>>s>>v; double m=s/v;//先求分钟总数 int h=0; m+=10;//加上捡垃圾时间 while(m>=60){/*将分钟数中够凑小时的部分取出,使得m为分钟部分*/ m-=60; h+=1;//凑够一个小时,小时数就加1 } double tm=m;//初始化最后要输出的分钟部分 int th=8-h;//初始化小时部分 if(th<0){ /*小于零则说明要减少的部分大于八小时,即需要到前一天出发了*/ th+=24;/*则前一天的小时数为该值+24,如-1,应该是前一天的23点*/ } if(m>0){/*接下来减去分钟数*/ th-=1; tm=60-m; } if(th<10) cout<<0; cout<<th<<":"; if(tm<10) cout<<0; cout<<(int)tm; return 0; } //made by luogu s47rsl ```
by s47rsl @ 2023-04-14 22:30:12


@[s47rsl](/user/990167) 非常感谢,但我现在改完的程序只有90分,能再帮我看下哪里又出问题了吗?``` #include<iostream> #include<bits/stdc++.h> using namespace std; int main() { int s,v,t,h,min; cin>>s>>v; if(s%v==0)//不满一分钟提前出发 { t=s/v; } else { t=s/v+1; } t+=10; if(t/60>8)//判断是否在前一天 { h=31-t/60; min=60-ceil(t%60); } else { h=7-t/60; min=60-ceil(t%60); } if(min==60) { min=0; h++; } if(h>10)//输出 { if(min>10) { cout<<h<<":"<<min; } else { cout<<h<<":0"<<min; } } else { if(min>10) { cout<<"0"<<h<<":"<<min; } else { cout<<"0"<<h<<":0"<<min; } } return 0; } ```
by kingOIER @ 2023-04-18 17:29:43


``` #include<iostream> #include<bits/stdc++.h> using namespace std; int main() { int s,v,t,h,min; cin>>s>>v; if(s%v==0) { t=s/v; } else { t=s/v+1; } t+=10; if(t/60>8) { h=31-t/60; min=60-ceil(t%60); } else { h=7-t/60; min=60-ceil(t%60); } if(min==60) { min=0; h++; } if(h>10)///cout { if(min>10) { cout<<h<<":"<<min; } else { cout<<h<<":0"<<min; } } else { if(min>10) { cout<<"0"<<h<<":"<<min; } else { cout<<"0"<<h<<":0"<<min; } } return 0; } ``` @[s47rsl](/user/990167)
by kingOIER @ 2023-04-18 17:30:12


老哥我看应该是输出的问题 你用c语言printf%02d应该没问题 还有分钟可以用60-t%60来处理
by 91xrz @ 2023-04-18 17:56:17


|