测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A41012. 人见人爱A+B

填空题 中等

题目描述

人见人爱A+B

题目描述

北大的acm上面已经有10来道A+B的题目了,相信这些题目曾经是大家的最爱,希望今天的这个A+B能给大家带来好运,也希望这个题目能唤起大家对ACM曾经的热爱。

这个题目的A和B不是简单的整数,而是两个时间,A和B 都是由3个整数组成,分别表示时分秒,比如,假设A为34 45 56,就表示A所表示的时间是34小时 45分钟 56秒。

输入格式

输入数据有多行组成,首先是一个整数N,表示测试实例的个数,然后是N行数据,每行有6个整数AH,AM,AS,BH,BM,BS,分别表示时间A和B所对应的时分秒。题目保证所有的数据合法。

输出格式

对于每个测试实例,输出A+B,每个输出结果也是由时分秒3部分组成,同时也要满足时间的规则(即:分和秒的取值范围在0~59),每个输出占一行,并且所有的部分都可以用32位整数表示。

样例输入

1

1 2 3 4 5 6

样例输出

5 7 9

参考答案

#include <stdio.h> void add_A_B( long *A, long *B ); int main() { long A[3], B[3]; int N; scanf( "%d", &N ); for ( int i = 0; i < N; i++ ) add_A_B( A, B ); return(0); } /*------------------------------------------*/ void add_A_B( long *A, long *B ) { long C[3]; scanf( "%ld%ld%ld", &A[0], &A[1], &A[2] ); scanf( "%ld%ld%ld", &B[0], &B[1], &B[2] ); for ( int i = 2; i >= 0; i-- ) C[i] = A[i] + B[i]; for ( int j = 2; j > 0; j-- ) { if ( C[j] >= 60 ) { C[j - 1] += C[j] / 60; C[j] %= 60; } } printf( "%ld %ld %ld\n", C[0], C[1], C[2] ); }
上一题 下一题