12行输入不进去,不知道哪里错了?

用结构类型表示时间内容(时间以时、分、秒表示),输入一个时间数值,再输入一个秒数n(n<60),以h:m:s的格式输出该时间再过n秒后的时间值(超过24点就从0点开始计时


#include<stdio.h> 
struct time{
int h;
int m;
int s;
};
int main()
{
int n;
struct time T;
scanf("%d;%d;%d",&T.h,&T.m,&T.s);
scanf("%d",&n); 
if(n>=0&&n<=60){
T.s=T.s+n;
if(T.s>=60){
T.m++;
T.s=T.s-60;
}
else{
T.s=T.s-60;
}
if(T.m==60){
T.h++;}
if(T.h==24){
T.h==0;
}
printf("%d;%d;%d",T.h,T.m,T.s);
}
else{
printf("error");
}
return 0;
}


如果您输入的时候的格式是类似于: 20:53:56
那么第11行您写错了,应该是(或者您输入的时候用20;53;56这种格式,用中文分号进行分隔):

scanf("%d:%d:%d",&T.h,&T.m,&T.s);  //英文冒号

并且27行您也写错了,一样的方式修改
请点个采纳谢谢~~


#include<stdio.h> 
struct time {
    int h;
    int m;
    int s;
};
int main()
{
    int n;
    struct time T;
    scanf("%d:%d:%d", &T.h, &T.m, &T.s);
    scanf("%d", &n);
    if (n >= 0 && n <= 60)
    {
        T.s = T.s + n;
        if (T.s >= 60)
        {
            T.s = T.s - 60;
            T.m++;
            if (T.m == 60)
            {
                T.m = 0;
                T.h++;
                if (T.h == 24)
                    T.h = 0;
            }
        }
        printf("%d:%d:%d", T.h, T.m, T.s);
    }
    else
        printf("error");
    return 0;
}