题目

读入非负整数总秒数,按 时:分:秒 格式输出(时分秒均为整数,可不带前导零)。

思路

本题要求:把总秒数换算成「时:分:秒」形式的整数。

设总秒数为 s:小时 h = s / 3600;去掉整小时后,分钟 m = (s % 3600) / 60;秒仍是 s % 60。最后按题目要求的格式用 printf 输出(是否补零看题面)。

解题分析

总秒数先取小时 /3600,余数再分、秒。注意余数用 %3600/60%60,不要对原 total 重复除错次序。

完整程序

#include <stdio.h>

int main(void)
{
    int total;
    if (scanf("%d", &total) != 1 || total < 0) {
        return 1;
    }
    int h = total / 3600;
    int m = (total % 3600) / 60;
    int s = total % 60;
    printf("%d:%d:%d\n", h, m, s);
    return 0;
}

运行示例

输入:

3661

输出:

1:1:1