大一新生c语言初学者的懵逼瞬间,求解

img

你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

#include <stdio.h>
int main()
{
    int n,h,m,s;
    scanf("%d",&n);
    while(n<0)
        n+=86400;
    n=n%86400;
    s = n%60;
    m = n/60%60;
    h = n/(60*60);
    printf("%02d:%02d:%02d",h,m,s);
    return 0;
}

先判断正负数,正数对86400求余。负数加上86400。然后除以求余60得到秒,除以60再求余60得到分钟,再除以60得到小时

#include <stdio.h>
int main()
{
    int n,h,m,s;
    scanf("%d",&n);
    if(n>0)
        n=n%86401;
    while(n<0)
        n+=86400;
    s = n%60;
    n = n/60;
    m = n%60;
    h = n/60;
    printf("%02d:%02d:%02d",h,m,s);
    return 0;
}