非常抱歉之前的代码修改有误。以下是修正后的代码:

#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填充。

希望这个修改后的代码可以正确解决问题。如果还有其他问题,请随时提问。

C语言代码修正:处理分钟小于0和小时溢出问题

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

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