C语言时间计算:修正后的代码及解释

本文将介绍一个C语言程序,该程序用于计算经过一定分钟数后的时间,并修正了原始代码中存在的逻辑错误。

原始代码存在的问题

原始代码在处理分钟加减时存在逻辑错误,导致计算结果不准确。例如,当分钟数加减超过60分钟时,代码无法正确更新小时数。

修正后的代码

以下是修正后的C语言代码:c#include <stdio.h>

int main() { int before, passed, hour, minute, after; scanf('%d %d', &before, &passed);

minute = before % 100;    hour = before / 100;        minute += passed;    if (minute < 0) {        while (minute < 0) {            minute += 60;            hour -= 1;        }    } else if (minute >= 60) {        while (minute >= 60) {            minute -= 60;            hour += 1;        }    }

after = hour * 100 + minute;    printf('%d

', after);

return 0;}

代码解释

  1. 获取输入: 代码首先使用 scanf 函数读取两个整数:before 表示初始时间(格式为 HHMM,例如 1030 表示 10:30),passed 表示经过的分钟数。

  2. 分离小时和分钟: 代码使用取模运算符 % 和除法运算符 /before 分离成小时 hour 和分钟 minute

  3. 计算新的分钟数: 代码将经过的分钟数 passed 加到初始分钟数 minute 上。

  4. 调整小时和分钟: - 如果 minute 小于 0,说明分钟数减少导致借位,使用 while 循环将 minute 不断加 60,同时将 hour 减 1,直到 minute 大于等于 0。 - 如果 minute 大于等于 60,说明分钟数增加导致进位,使用 while 循环将 minute 不断减 60,同时将 hour 加 1,直到 minute 小于 60。

  5. 计算最终时间: 代码将调整后的小时 hour 乘以 100,再加上调整后的分钟 minute,得到最终时间 after

  6. 输出结果: 代码使用 printf 函数将最终时间 after 输出到控制台。

总结

这段代码展示了如何使用C语言进行时间计算,并修正了原始代码中的逻辑错误。通过合理地使用循环和条件语句,代码可以正确处理分钟加减和小时进位/借位的情况,确保计算结果的准确性。

C语言时间计算:修正后的代码及解释

原文地址: https://www.cveoy.top/t/topic/Qot 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录