返回 课程

信奥AC之路-1级

0% 完成
0/0 步骤
  1. 第1课 开发环境与基础输出
    5 主题|小节
  2. 第2课 算术运算符
    7 主题|小节
  3. 第3课 printf与运算输出
    7 主题|小节
  4. 第4课 数的进制与拆位
    6 主题|小节
  5. 第5课 变量与基础运算
    17 主题|小节
  6. 第6课 常量与取整运算
    8 主题|小节
  7. 第7课 关系运算
    8 主题|小节
  8. 第8课 逻辑运算
    9 主题|小节
  9. 第9课 输入与计算进阶
    10 主题|小节
  10. 第10课 if语句及双分支语句
    8 主题|小节
  11. 第11课 if语句及双分支进阶
    11 主题|小节
  12. 第12课 三目运算
    9 主题|小节
  13. 第13课 多分支、多if和switch语句
    11 主题|小节
  14. 第14课 循环(基本输出)
    7 主题|小节
  15. 第15课 循环(While+If)
    8 主题|小节
  16. 第16课 循环(计数、求和、求乘积)
    10 主题|小节
  17. 第17课 循环进阶(While+)
    8 主题|小节
  18. 第18课 do-while及while其他用法
    8 主题|小节
  19. 第19课 For循环基础
    9 主题|小节
  20. 第20课 For循环进阶
    8 主题|小节
课 9, 主题|小节 4
进行中

9.3 时间的魔法

2025年9月22日
课 进展
0% 完成

9.3.1 时间计算进阶

// 24小时制时间转换为分钟
int hour, minute;
scanf("%d:%d", &hour, &minute);    // 输入时:分格式
int total_minutes = hour * 60 + minute;  // 转换为分钟表示

// 跨天时间计算(使用取模)
int minutes_in_day = 24 * 60;      // 一天的总分钟数
int next_day_minutes = (total_minutes + minutes_in_day) % minutes_in_day;

// 分钟转回时分格式
int result_hour = next_day_minutes / 60;    // 获取小时
int result_minute = next_day_minutes % 60;  // 获取分钟

🔬 实验一:时间计算器
题目描述:
输入当前时间(小时:分钟)和需要经过的分钟数,计算最终时间。

样例输入:

14:20 40

样例输出:

15:0

解题思路:

  1. 将输入时间转换为分钟表示
  2. 加上经过的分钟数
  3. 使用取模运算处理超过24小时的情况
  4. 转换回时:分格式
int hour, minute, wait;
scanf("%d:%d%d", &hour, &minute, &wait);  // 输入当前时间和等待时间

// 转换为分钟并计算
int total = hour * 60 + minute + wait;     // 计算总分钟数
int day_minutes = 24 * 60;                 // 一天的分钟数
int final_minutes = total % day_minutes;    // 处理超过24小时的情况

// 转换回时分格式
int final_hour = final_minutes / 60;       // 计算小时
int final_minute = final_minutes % 60;     // 计算分钟

printf("%d:%dn", final_hour, final_minute);

9.3.2 星期计算

// 计算n天后的星期
int today, n;
scanf("%d%d", &today, &n);        // 输入当前星期(1-7)和天数

// 使用取模计算
int future = ((today - 1 + n) % 7) + 1;   // 确保结果在1-7之间

🔬 实验二:日期计算器
题目描述:
输入今天是星期几(1-7)和经过的天数,计算那天是星期几。

样例输入:

3 10

样例输出:

6

解题思路:

  1. 读入当前星期和经过的天数
  2. 使用取模运算计算结果
int today, days;
scanf("%d%d", &today, &days);     // 读入当前星期和经过的天数

// 计算并输出结果
int result = ((today - 1 + days) % 7) + 1;
printf("%dn", result);

练习题:

  1. 选择题:某活动从14:20开始,持续195分钟,结束时间是:
    A. 16:35
    B. 17:35
    C. 17:15
    D. 16:15

正确答案:B
解析:195分钟 = 3小时15分钟,14:20 + 3:15 = 17:35。将195分钟加到14:20,需要先将所有时间转换为分钟计算。

  1. 判断题:一天的分钟数是1440(即24 * 60),任何时间加上1440分钟后的时间和原时间相同。

正确答案:√
解析:因为1440分钟正好是一天的时间,所以时间加上1440分钟会回到相同的时刻。