到底哪错了啊 该怎么修改

img


X同学是好学生。他每天严格按作息时间过着“宿舍-食堂-教室”三点一线的生活。他早6点前晚6点后在宿舍学习,早上6点至7点、中午12点至1点、下午5点至6点在食堂吃饭,其余时间在教室上课。
你知道X现在在哪里吗?

输入格式:
一行中给出当天的一个时间点,形如:HH:MM:SS,HH表示小时,MM表示分,SS表示秒,全天时间采用24小时制表示。

输出格式:
根据不同情况,输出一行文本,确定在宿舍输出:dormitory;确定在食堂输出:canteen;确定在教室输出:classroom;两段时间交接处不确定在哪里时输出:on the way。

#include<stdio.h>

 
int main()
{
    int h, m, s;
    int sum = 0;
    scanf("%d:%d:%d", &h, &m, &s);
    sum = h * 3600 + m * 60 + s;
    printf("%d\n", sum);
    if (sum < 21600 || sum > 64800)
        printf("dormitory");
    else if ((sum > 21600 && sum < 25200) || (sum > 43200 && sum < 46800) || (sum > 61200 && sum < 64800))
        printf("canteen");
    else if ((sum > 25200 && sum < 43200) || (sum > 46800 && sum < 61200))
        printf("classroom");
    else
        printf("on the way");
 
    return 0;
}
 



int main()
{
    int h, m, s;
    scanf("%d:%d:%d", &h, &m, &s);
    h = h * 10000 + m * 100 + s;
    printf("%d\n", h);//
    if (h < 60000 || h > 180000)
        printf("dormitory");
    else if ((h > 60000 && h < 70000) || (h > 120000 && h < 130000) || (h > 170000 && h < 180000))
        printf("canteen");
    else if ((h > 80000 && h < 120000) || (h > 130000 && h < 170000))
        printf("classroom");
    else
        printf("on the way");

    return 0;
}

可以加上对时间输入是否的判断。