用结构类型表示时间内容(时间以时、分、秒表示),输入一个时间数值,再输入一个秒数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;
}