C++;计算两次之间的时间量 我没有任何C++的经验,所以我有点困惑——我正在上高中编程课,我们希望在几乎不知道任何C++或编程技巧的情况下完成这个任务。

C++;计算两次之间的时间量 我没有任何C++的经验,所以我有点困惑——我正在上高中编程课,我们希望在几乎不知道任何C++或编程技巧的情况下完成这个任务。,c++,C++,我应该写一个程序,以24小时格式读取事件的开始和结束时间。然后我需要打印经过的小时数和分钟数 ex 1: first time: 0800 second time: 1705 time elapsed: 9 hr and 5 min ex 2: first time:0900 second time: 0800 time elapsed: 23 hr 0 min 我们应该将它们分为两种不同的情况(第一次是在第二次之前,反之亦然——我们应该以相同的方式处理这两种情况)。有没有一种方法可以在没

我应该写一个程序,以24小时格式读取事件的开始和结束时间。然后我需要打印经过的小时数和分钟数

ex 1: 
first time: 0800
second time: 1705
time elapsed: 9 hr and 5 min

ex 2:
first time:0900
second time: 0800
time elapsed: 23 hr 0 min
我们应该将它们分为两种不同的情况(第一次是在第二次之前,反之亦然——我们应该以相同的方式处理这两种情况)。有没有一种方法可以在没有if语句的情况下实现这一点?这将是理想的,因为我们还没有学会它们

到目前为止,我只有这些:

int main() : {

    int first_time;
    int second_time;
    int dif_time;

    std::cout << "Enter first time" << endl;

    std::cout << "Enter second time" << endl;

    difference = second_time - first_time;

    double mod_time = difference % 60;

}
int main():{
int第一次;
int第二次;
内-外时间;

祝贺你写了这么好的问题。你清楚地思考了它,表明你已经做了一些工作

如果不允许您使用If语句,您的其他选项包括:

  • 第三运算符
    ?:

  • 返回绝对值的
    abs()
    函数

  • 计算两个时间差。一个假设第一个时间更大。另一个-假设第二个时间更大。然后使用
    std::max()
    从两个结果中取较大值

由于这是一项家庭作业,我将不提供更多详细信息。如果您需要更多帮助,您可以通过编辑您的问题来提问。

如果您确实想避免
If
s,您可以获取时间差的绝对值。将时间差加上24小时,然后将时间差除以24小时


此外,如果您计划以该格式输入,
mod 60
将给您错误的答案,因为
100%60==40

编辑:从示例输出中可以看出,对于第二次在第一次之前的情况,您应将其视为第二次实际上是第二天的时间

在这种情况下,请考虑始终将时间差增加24小时,然后使用模运算将时间限制在24小时以下



这是我在编辑之前的帖子内容:

您可以利用布尔表达式导致0(false)或1(true)的事实。例如:

delta = 24 * (time < 0);
time += delta;
delta=24*(时间<0);
时间+=增量;

然而,这只是在极少数情况下的选择。除非在课程中讨论过这种可能性,否则你可能不应该在家庭作业中使用这一概念。

如果
,为什么要任意限制“不使用
”-你的作业中是否特别提到了这一点?你是否可以使用三元表达式来代替?(这不是
if
,但也是一样的。查一下。)你发布的代码中有几个错误。在
main()之后有一个无关的“:`after
差异
尚未声明,您不会在返回
int
的函数中返回值……什么样的类希望您在不教授作业所需的任何概念的情况下完成作业?您至少有一本教科书吗?所有解决方案都需要使用比
更高级的工具e> 如果你还没有学过
如果
如果
如果
的话,我不相信你还学过其他任何方法,因为
如果
是最基本的编程概念之一。另一个选项:
std::max
std::min
谢谢你,Gene。我添加了这个选项。差值的绝对值会给出错误的结果lt.如果开始是
0900
而结束是
0800
,则绝对值将表示它是1小时,而不是23小时。没有注意到该示例会这样做。已修复。根据我对问题本身的理解,这里不可能表示0900的开始和0800的结束,因为规范指示时间的顺序是proVIED不相关——(第一次在第二次之前,反之亦然——我们应该以相同的方式处理这两种情况)