C语言时间计算:修正后的代码及解释
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;}
代码解释
-
获取输入: 代码首先使用
scanf函数读取两个整数:before表示初始时间(格式为HHMM,例如 1030 表示 10:30),passed表示经过的分钟数。 -
分离小时和分钟: 代码使用取模运算符
%和除法运算符/将before分离成小时hour和分钟minute。 -
计算新的分钟数: 代码将经过的分钟数
passed加到初始分钟数minute上。 -
调整小时和分钟: - 如果
minute小于 0,说明分钟数减少导致借位,使用while循环将minute不断加 60,同时将hour减 1,直到minute大于等于 0。 - 如果minute大于等于 60,说明分钟数增加导致进位,使用while循环将minute不断减 60,同时将hour加 1,直到minute小于 60。 -
计算最终时间: 代码将调整后的小时
hour乘以 100,再加上调整后的分钟minute,得到最终时间after。 -
输出结果: 代码使用
printf函数将最终时间after输出到控制台。
总结
这段代码展示了如何使用C语言进行时间计算,并修正了原始代码中的逻辑错误。通过合理地使用循环和条件语句,代码可以正确处理分钟加减和小时进位/借位的情况,确保计算结果的准确性。
原文地址: https://www.cveoy.top/t/topic/Qot 著作权归作者所有。请勿转载和采集!