使用 C++ 计算睡眠时间及开发建议
### 🍃思路分析 本题需要计算小 F 的睡眠时间,由于睡觉时间跨天,需要分情况讨论。可以先将睡觉和起床时间都转换为分钟数,然后计算时间差,最后将时间差转换为小时和分钟的形式。 ### 💻代码实现 ```cpp #include <iostream> using namespace std; int main() { int x, y, a, b; // 输入睡觉和起床时间 cin >> x >> y >> a >> b; // 将睡觉和起床时间转换为分钟数 int sleep_time = x * 60 + y; int wake_time = a * 60 + b; // 如果起床时间在睡觉时间之前,说明跨天了,需要加上一天的分钟数 if (wake_time < sleep_time) { wake_time += 24 * 60; } // 计算睡眠时间(分钟) int total_minutes = wake_time - sleep_time; // 计算小时数 int hours = total_minutes / 60; // 计算分钟数 int minutes = total_minutes % 60; // 输出结果 cout << hours << " " << minutes << endl; return 0; } ``` ### 📋代码解释 1. **输入部分**:使用`cin`读取四个整数`x`, `y`, `a`, `b`,分别表示睡觉的小时、分钟和起床的小时、分钟。 2. **时间转换**:将睡觉和起床时间都转换为分钟数,方便后续计算。 3. **跨天处理**:如果起床时间在睡觉时间之前,说明跨天了,需要给起床时间加上一天的分钟数(24 * 60)。 4. **计算睡眠时间**:用起床时间的分钟数减去睡觉时间的分钟数,得到总睡眠时间(分钟)。 5. **转换为小时和分钟**:用总睡眠时间除以 60 得到小时数,取余数得到分钟数。 6. **输出结果**:使用`cout`输出小时数和分钟数,中间用空格分隔。 ### 🛠️开发建议 - **输入验证**:可以添加输入验证,确保输入的时间在合法范围内(0 <= x <= 23, 0 <= y <= 59, 0 <= a <= 23, 0 <= b <= 59),避免出现非法输入导致的错误。 - **函数封装**:可以将时间转换和计算睡眠时间的逻辑封装成函数,提高代码的可读性和可维护性。 ### 📚学习资源 - C++ 官方文档:https://en.cppreference.com/w/ - 《C++ Primer》:经典的 C++ 学习书籍,适合初学者和有一定基础的开发者。 ######[AI写代码神器 | 651点数解答 | 2026-06-26 16:51:53]
- JSP 实现商品展示模块:分页、搜索、交互与美观界面全搞定!(字节豆包 | 19点数解答 | 2024-12-13 15:00:43)388
- 睡眠充足判断:利用 C++ 代码计算午休与夜眠总时长(字节豆包 | 303点数解答 | 2026-02-04 21:22:37)78
- PyCharm 中用 Selenium 编写自动化测试脚本,轻松登录 eShop 测试平台并点击“我的订单”(字节豆包 | 304点数解答 | 2024-11-06 15:38:30)488
- C++计算字符矩阵中十字图形个数的实现与开发建议(字节豆包 | 720点数解答 | 2026-04-10 19:42:04)54
- C++ 实现计算字符矩阵中十字图形个数(字节豆包 | 591点数解答 | 2026-05-10 15:47:30)37
- C++ 实现计算字符矩阵中 '#' 构成的十字图形个数(字节豆包 | 548点数解答 | 2026-06-06 19:45:33)22
- 易语言读取文本文件并显示到超级列表框:代码示例与注意要点(DeepSeek | 571点数解答 | 2025-08-23 20:54:40)290
- 易语言:读取并显示特定文本到超级列表框,还能增加新数据的方法与要点(DeepSeek | 1317点数解答 | 2025-08-23 20:58:40)284
- C++实现计算字符矩阵中十字图形个数(字节豆包 | 333点数解答 | 2026-03-14 19:46:38)72
- C++实现矩阵中十字图形个数的计算(字节豆包 | 847点数解答 | 2026-03-14 20:19:15)79
- C++程序:计算字符矩阵中'#'构成的十字图形个数(字节豆包 | 425点数解答 | 2026-04-24 19:19:07)56
- C++程序:计算字符矩阵中'#'构成的十字图形个数(字节豆包 | 354点数解答 | 2026-05-09 19:13:12)38