关于翁恺课程中时间差程序中的问题!(标签-C语言|关键词-#include)

我在翁恺的C语言课程中遇到一个问题 希望各位能够帮我看一下
我写了个时间差程序 但是只有小时部分能够计算并且表达出来 但是分钟部分不能够正常显示 而是仍然显示小时的时间 我对此很不解
希望各位能够帮我观看一下哪里出现了问题 谢谢!

#include 

int main()
{
    int min;
    int hour;
int MIN;
    int HOUR;
    printf("请输入你的时间:");
    scanf_s("%d %d",&hour,&min);
    printf("请输入对方时间:");
    scanf_s("%d %d",&HOUR,&MIN );
    int time = (((HOUR * 60) + MIN) - ((hour * 60) + min))/60;
    int mins = time % 60;
    printf("时间差位:%d小时%d分钟。\n",time,mins);
}

你用time%60来计算分钟肯定不对的,time是小时最多不会超过24,模60依然等于原来的值,改成这样:

#include <stdio.h>

int main()
{
    int min;
    int hour;
    int MIN;
    int HOUR;
    printf("请输入你的时间:");
    scanf_s("%d %d", &hour, &min);
    printf("请输入对方时间:");
    scanf_s("%d %d", &HOUR, &MIN);
    int time = (((HOUR * 60) + MIN) - ((hour * 60) + min)) / 60;
    int mins = (((HOUR * 60) + MIN) - ((hour * 60) + min)) % 60;
    printf("时间差位:%d小时%d分钟。\n", time, mins);
}

13行:因为time为int型,结果只保留了整数部分,也就是小时数。
14行:在用time%60的时候。time只是一个小时数。
例如,13行:time=((360+40)-(260+30))/60=1;
14行:1%60=1;

应该取绝对值吧,分钟之差应该是求出总的分钟之差再对60求余。


#include <stdio.h>
#include <math.h>
 
int main()
{
    int min;
    int hour;
    int MIN;
    int HOUR;
    printf("请输入你的时间:");
    scanf("%d %d",&hour,&min);
    printf("请输入对方时间:");
    scanf("%d %d",&HOUR,&MIN);
    int time_gap = abs((HOUR*60+MIN) - (hour * 60 + min)) / 60;
    int mins = abs((HOUR*60+MIN) - (hour * 60 + min)) % 60;
    printf("时间差位:%d小时%d分钟。\n",time_gap, mins);
}