我必须编写一个程序,以军事时间格式给出两次之间的差异。例如,
请在第一时间输入:1730 请输入第二次:0900 输出= 15小时30分钟
这是我提出的程序(*不允许使用if语句,循环或函数)
我只需要知道这是正确还是不正确?
int main()
{
int first;
int second;
cout << "Please enter the first time:";
cin >> first;
cout << endl;
cout << "Please enter the second time:";
cin >> second;
cout << endl;
int am = first - 1200;
second = second + 1200;
int amhour = am/100;
int ammins = am%100;
int hours = second - amhour*100;
int real_hr = hours - 40;
int final_time = real_hr - ammins;
int final_hours = final_time/100;
int final_mins = final_time%100;
cout << final_hours << " hours and " << final_mins << " minutes." << endl;
return 0;
}
答案 0 :(得分:0)
我首先将每次转换为“自午夜以来的分钟数”,然后从第二个中减去第一个,然后使用它来形成输出。
但是,例如,如果第一次是2330
,而第二次是{{1},那么您可能需要考虑减法会给您一个负号。 }(越过日期边界)。
您可以通过简单地将1440分钟(一天)添加到差异中,然后使用取模运算符来减少超过一天的时间来解决该问题。
所以我将从以下内容开始:
0030