汽车在沿途都有里程标志的公路上行进程序输入开始和结束的旅程以及时间。时间以时分秒输入程序计算,并以公里数每小时的形式输出平均速度。用c++
时间: 2024-09-25 09:15:27 浏览: 34
在C++中,你可以使用`<iostream>`库来进行用户输入、时间和速度的计算。下面是一个简单的程序结构,它会获取起点和终点的距离,以及起始和结束的时间,然后计算并输出平均速度:
```cpp
#include <iostream>
#include <chrono> // 需要这个头文件处理时间
int main() {
// 用户输入
double start_distance;
std::cout << "请输入起点到终点的距离(单位:公里):" << std::endl;
std::cin >> start_distance;
auto start_time = std::chrono::high_resolution_clock::now(); // 获取当前时间点作为开始
int hours, minutes, seconds; // 分别表示小时、分钟和秒
std::cout << "请输入旅程开始的具体时间(小时:分钟:秒):" << std::endl;
std::cin >> hours >> minutes >> seconds;
// 将时间转换为秒
auto start_timestamp = static_cast<int64_t>(hours * 3600) + minutes * 60 + seconds;
// 用户输入结束时间
int end_hours, end_minutes, end_seconds;
std::cout << "请输入旅程结束的具体时间(小时:分钟:秒):" << std::endl;
std::cin >> end_hours >> end_minutes >> end_seconds;
auto end_timestamp = static_cast<int64_t>(end_hours * 3600) + end_minutes * 60 + end_seconds;
// 计算总时间差 (假设没有闰秒)
auto total_seconds = std::chrono::duration_cast<std::chrono::seconds>(end_timestamp - start_timestamp).count();
// 如果时间差小于等于0,说明输入错误
if (total_seconds <= 0) {
std::cerr << "错误:结束时间应在开始时间之后。\n";
return 1;
}
// 输出平均速度(km/h)
double average_speed = start_distance / static_cast<double>(total_seconds / 3600);
std::cout << "平均速度: " << average_speed << " 公里/小时\n";
return 0;
}
```
阅读全文