编译没问题,运行后算的结果很离谱

#include<stdio.h>
int main()
{
system("mode con cp select=65001");

int hour1,minute1;
int hour2,minute2;

scanf("%d %d",&hour1,&minute1);
scanf("%d %d",&hour1,&minute1);

int ih = hour2 - hour1;
int im = minute2 - minute1;
if(im<0){
im = 60 + im;
ih--;
}

printf("时间差是%d小时%d分。\n",ih,im);

return 0;
}
看了半天也没看出哪里有问题……qvq

改成我这样运行,

int hour1 = 0, minute1 = 0;
    int hour2 = 0, minute2 = 0;

    scanf_s("%d %d", &hour1, &minute1);
    scanf_s("%d %d", &hour2, &minute2);

    int ih = hour2 - hour1;
    int im = minute2 - minute1;
    if (im < 0) {
        im = 60 + im;
        ih--;
    }

    printf("时间差是%d小时%d分。\n", ih, im);