C++ 我是编程新手
我找不到错误有人能帮我吗C++ 我是编程新手,c++,C++,我找不到错误有人能帮我吗 #include<iostream> using namespace std; int main(){ int a,b,c,d,h,m; cin>>a>>b>>c>>d; h = c-a; m = d-b; if (h<0) { h=24+(c-a); } if(m<0) { m=60+(
#include<iostream>
using namespace std;
int main(){
int a,b,c,d,h,m;
cin>>a>>b>>c>>d;
h = c-a;
m = d-b;
if (h<0)
{
h=24+(c-a);
}
if(m<0)
{
m=60+(d-b);
h--;
}
if(a==c && b==d)
{
cout<<"O JOGO DUROU 24 HORA(S) E 0 MINUTO(S)"<<endl;
}
else
{
cout<<"O JOGO DUROU "<<h<<" HORA(S) E "<<m<<" MINUTO(S)"<<endl;
}
return 0;
}
#包括
使用名称空间std;
int main(){
INTA,b,c,d,h,m;
cin>>a>>b>>c>>d;
h=c-a;
m=d-b;
如果(h1个数据集会导致问题,从10:15开始,到第二天10:14结束(或者,我怀疑是23:01
和23:59
之间的任何持续时间)
通过代码运行这些值(稍微减少并重新格式化,但功能相同):
您将看到,我还简化了一些赋值(使用+=
),并通过将0,0
调整为24,0
,在减去开始时间的结束时间之前,将全部转换为分钟,从而不再需要两个独立的cout
语句
如果结束时间小于开始时间,则表示开始一天,结束另一天。此情况在If
语句中处理
#include<iostream>
using namespace std;
int main(){
int a,b,c,d;
cin>>a>>b>>c>>d;
int start_time = a * 60 + b;
int end_time = c * 60 + d;
int duration = end_time - start_time;
if(start_time >= end_time) duration = (24 * 60 - (start_time - end_time));
cout<<"O JOGO DUROU "<<(duration / 60)<<" HORA(S) E "<<(duration % 60)<<" MINUTO(S)"<<endl;
}
#包括
使用名称空间std;
int main(){
INTA、b、c、d;
cin>>a>>b>>c>>d;
int start_time=a*60+b;
int end_time=c*60+d;
int duration=结束时间-开始时间;
如果(开始时间>=结束时间)持续时间=(24*60-(开始时间-结束时间));
如果您告诉人们您遇到了什么样的错误,以及您在修复错误时尝试了什么样的方法,那么Cout可能会有所帮助。您需要说明代码尝试执行什么操作,预期行为与观察到的行为是什么,以及复制粘贴编译器错误(如果有)。if(m
if (m < 0) {
m += 60
h--;
}
if (h < 0) {
h += 24
}
if (h == 0 && m == 0) {
h = 24;
}
cout << "O JOGO DUROU " << h << " HORA(S) E " << m << " MINUTO(S)" << '\n';
#include<iostream>
using namespace std;
int main(){
int a,b,c,d;
cin>>a>>b>>c>>d;
int start_time = a * 60 + b;
int end_time = c * 60 + d;
int duration = end_time - start_time;
if(start_time >= end_time) duration = (24 * 60 - (start_time - end_time));
cout<<"O JOGO DUROU "<<(duration / 60)<<" HORA(S) E "<<(duration % 60)<<" MINUTO(S)"<<endl;
}