80分,不知哪有问题,请大佬指教

P1425 小鱼的游泳时间

求回复!QAQ
by LMR_ @ 2024-01-28 22:35:11


这是我的AC代码你拿去看看吧!```cpp #include<bits/stdc++.h> using namespace std; int main() { int a,b,c,d; cin>>a>>b>>c>>d; int sum1=a*60+b; int sum2=c*60+d; int cha=sum2-sum1; int hour=cha/60; int mint=cha-hour*60; cout<<hour<<" "<<mint<<endl; return 0; } ```
by yehaoming @ 2024-01-30 23:11:02


@[LMR_](/user/1272861) 你这思路应该是用后面的分钟减去前面的分钟,但为什么要 ```cpp if(b<=d)f=d-b; ``` 这两不是相反数阿喂,比如后面是20,前面是50,那么减去后得-30,这里向小时借60分钟,又变成了30,所以要改成 ```cpp if(d-b < 0){f = d-b+60;c--;}//因为和小时借了一位 ``` 还有那个v, ```cpp v=1;if(v==0)e=c-a; ``` 这里设置成1了,那么下面那个if永远不会成立,也就是说这两个代码白写,e = c-1-a就可以了,这下应该就可以了(按我理解是这样,如果错了,那我就不知道喽) 【我说活有点冲,没有喷你的意思,请谅解】
by davidea @ 2024-02-05 22:00:22


@[davidea](/user/1187198) 这是我的AC代码,思路不一样,但挺简单的 ```cpp #include <bits/stdc++.h> using namespace std; int main() { int h1,m1,h2,m2; cin>>h1>>m1>>h2>>m2; int h = h2-h1-1; int m = (60-m1)+m2; if(m >= 60){ h++; m = m%60; } printf("%d %d",h,m); return 0; } ```
by davidea @ 2024-02-05 22:01:30


@[davidea](/user/1187198) 谢谢
by LMR_ @ 2024-02-07 17:28:57


很奇怪为什么会有if,求指导 ```c #include<bits/stdc++.h> using namespace std; int n,t=2,c; int main() { int a,b,c,d; cin>>a>>b>>c>>d; b=b+a*60; d=d+c*60; int e=d-b; cout<<e/60<<" "<<e%60; return 0; } ```
by yangzhengxi0225 @ 2024-02-22 19:25:00


暴力不香吗?if没有必要(同一天开始时间不可能大于结束时间),算出开始时间(分钟)和结束时间(分钟),结束-开始再求出小时和分钟就行了,别想太复杂,我的代码是这样的: ```cpp #include<bits/stdc++.h> using namespace std; int sh,sm,eh,em; int main(){ cin>>sh>>sm>>eh>>em; int st=sh*60+sm,et=eh*60+em; int swim_t=et-st,swim_h=swim_t/60,swim_m=swim_t%60; cout<<swim_h<<' '<<swim_m; return 0; } ```
by ProgrammingCat @ 2024-05-02 13:29:45


|