本题要求编写程序,以hh:mm:ss
的格式输出某给定时间再过n
秒后的时间值(超过23:59:59就从0点开始计时)。
输入格式:
输入在第一行中以hh:mm:ss
的格式给出起始时间,第二行给出整秒数n
(<60)。
输出格式:
输出在一行中给出hh:mm:ss
格式的结果时间。
输入样例:
11:59:40
30
结尾无空行
输出样例:
12:00:10
结尾无空行
博主比较菜,只能写出这种冗长的代码。这个代码是肯定可以进一步简化的,这就交给读者帮我简化了,如果有想法可以在评论区告诉我,谢谢啦。
#include <stdio.h>
#include <stdlib.h>
/*本题要求编写程序,以hh:mm:ss的格式输出某给定时间再过n秒后的时间值(超过23:59:59就从0点开始计时) */
struct time{
int hour;
int minute;
int second;
};
int main(int argc, char *argv[]) {
struct time tt;
int n;
int sum;
scanf ("%d:%d:%d",&tt.hour,&tt.minute,&tt.second);
scanf ("%d",&n);
sum = tt.second + n;
if (sum < 60){
printf ("%02d:%02d:%02d",tt.hour,tt.minute,sum);
}else if (sum >= 60){
sum = sum % 60;
tt.minute++;
if (tt.minute < 60){
printf ("%02d:%02d:%02d",tt.hour,tt.minute,sum);
}else{
tt.minute = tt.minute % 60;
tt.hour++;
if (tt.hour >= 24){
tt.hour = 0;
tt.minute = 0;
printf ("0%d:0%d:%02d",tt.hour,tt.minute,sum);
}else{
printf ("%02d:%02d:%02d",tt.hour,tt.minute,sum);
}
}
}
return 0;
}