gpt4 book ai didi

c++ - 如何比较两个小时并说出哪个更晚或更早?

转载 作者:太空宇宙 更新时间:2023-11-04 15:23:06 25 4
gpt4 key购买 nike

如何比较两个小时?我尝试了下面的代码,但它给了我两次 true,但它应该给 falsetrue:

#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;

bool earlierEqual(int h1, int m1, int s1, int h2, int m2, int s2)
{
if(h1 <= h2)
{
return true;
}
else
{
if(m1 <= m2)
{
return true;
}
else
{
if(s1 <= s2)
{
return true;
}
else
return false;
}
}
}

bool laterEqual(int h1, int m1, int s1, int h2, int m2, int s2)
{
if(h1 >= h2)
{
return true;
}
else
{
if(m1 >= m2)
{
return true;
}
else
{
if(s1 >= s2)
{
return true;
}
else
return false;
}
}
}

int main()
{
int h1 = 12, m1 = 4, s1 = 29;
int h2 = 11, m2 = 12, s2 = 1;

// false
cout << earlierEqual(h1, m1, s1, h2, m2, s2) << "\n";
// true
cout << laterEqual(h1, m1, s1, h2, m2, s2) << "\n";


return 0;
}

最佳答案

您的 else 分支只有在时间相等时才应该被激活。否则,即使小时 h1 大于 h2,分钟的比较也将决定。您应该将代码更改为以下内容:

bool earlierEqual(int h1, int m1, int s1, int h2, int m2, int s2)
{
if (h1 < h2)
{
return true;
}
else if (h1 == h2)
{
if (m1 < m2)
{
return true;
}
else if (m1 == m2)
{
if (s1 < s2)
{
return true;
}
}
}

return false;
}

关于c++ - 如何比较两个小时并说出哪个更晚或更早?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14587598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com