C语言代码修正:处理分钟小于0和小时溢出问题
非常抱歉之前的代码修改有误。以下是修正后的代码:
#include <stdio.h>
int main() {
int before, passed, hour, minute, after;
scanf("%d %d", &before, &passed);
minute = before % 100;
hour = before / 100;
minute += passed;
while (minute < 0) { // 当分钟小于0时,向前借位
minute += 60;
hour--;
}
while (minute >= 60) { // 当分钟超过60时,向后进位
minute -= 60;
hour++;
}
if (hour < 0) { // 当小时小于0时,重新调整为0
hour = 0;
} else if (hour >= 24) { // 当小时超过24时,重新调整为0
hour = 0;
}
after = hour * 100 + minute;
printf("%04d\n", after);
return 0;
}
在这个修改后的代码中,我们使用了两个while循环来处理分钟的调整,确保分钟的范围在0到59之间。同时,我们还添加了对小时的检查,确保小时的范围在0到23之间。最后,我们使用%04d来确保输出的结果为4位数,不足的部分会用0填充。
希望这个修改后的代码可以正确解决问题。如果还有其他问题,请随时提问。
原文地址: https://www.cveoy.top/t/topic/Qqp 著作权归作者所有。请勿转载和采集!