HDOJ上面已经有10来道A+B的题目了,相信这些题目曾经是大家的最爱,希望今天的这个A+B能给大家带来好运,也希望这个题目能唤起大家对ACM曾经的热爱。
这个题目的A和B不是简单的整数,而是两个时间,A和B 都是由3个整数组成,分别表示时分秒,比如,假设A为34 45 56,就表示A所表示的时间是34小时 45分钟 56秒。
2 1 2 3 4 5 6 34 45 56 12 23 34
5 7 9 47 9 30
用C语言解决这个问题,我i觉得只能用二维数组的方法。可以有很多种用法,例如先把所有的数存进去,再存运算结果然后输出结果,但有一种比较简单的方法是直接保存结果然后输出,方法就是用for循环输入,然后保存结果,最后输出,代码如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int t,h,m,j,i,s;
int a[100][3];
int ah,am,as,bh,bm,bs;
scanf("%d",&t);
for(i=0;i<t;i++)
{
scanf("%d%d%d%d%d%d",&ah,&am,&as,&bh,&bm,&bs);
h=ah+bh;m=am+bm;s=as+bs;
if(s>59)s=s-60,m=m+1;
if(m>59)m=m-60,h=h+1;
a[i][0]=h;a[i][1]=m;a[i][2]=s;
#include <stdlib.h>
int main()
{
int t,h,m,j,i,s;
int a[100][3];
int ah,am,as,bh,bm,bs;
scanf("%d",&t);
for(i=0;i<t;i++)
{
scanf("%d%d%d%d%d%d",&ah,&am,&as,&bh,&bm,&bs);
h=ah+bh;m=am+bm;s=as+bs;
if(s>59)s=s-60,m=m+1;
if(m>59)m=m-60,h=h+1;
a[i][0]=h;a[i][1]=m;a[i][2]=s;
}
for(i=0;i<t;i++)
{
for(j=0;j<3;j++)
{
printf("%d",a[i][j]);
if(j<2)
printf(" ");
}
printf("\n");
}
return 0;
}
for(i=0;i<t;i++)
{
for(j=0;j<3;j++)
{
printf("%d",a[i][j]);
if(j<2)
printf(" ");
}
printf("\n");
}
return 0;
}
还有一点很重要的就是要注意结尾的空格和换行处理。