輸入兩個時間 a:b:c 和 d:e:f(時:分:秒),計算它們的和。秒、分滿 60 進位,時無上限。多組測試,首行輸入組數。
z = c + f; if (z>=60) { z-=60; y++; }y += e; if (y>=60) { y-=60; x++; }x = a + d(含進位)。#include <stdio.h>
int main() {
int T;
scanf("%d", &T);
while (T--) {
int a,b,c, d,e,f;
scanf("%d%d%d%d%d%d", &a,&b,&c, &d,&e,&f);
int sec = c + f;
int min = b + e + sec/60;
int hour = a + d + min/60;
sec %= 60; min %= 60;
printf("%d %d %d", hour, min, sec);
if (T) putchar('\n');
}
return 0;
}
sec/60 直接得進位數,sec%=60 得餘秒,碼更簡潔。hour, min, sec 語義清晰。scanf 自動跳過空白,支援換行/空格分隔。typedef struct { int h,m,s; } Time;
Time add(Time t1, Time t2) {
Time r; r.s = t1.s+t2.s; r.m = t1.m+t2.m+r.s/60; r.h = t1.h+t2.h+r.m/60;
r.s%=60; r.m%=60; return r;
}
可進一步實現減法、比較、格式化輸出(%02d:%02d:%02d)等功能。