这个题其实不难 仔细想想,,
注意题中要求的是一天是12个小时
#include<algorithm> #include<stdio.h> #include<math.h> using namespace std; int main() { int a,b,c,d,e,f,h,m,s,k,p,t; scanf("%d",&t); while(t>0) { k=0; scanf("%d:%d:%d",&a,&b,&c);//注意双引号一定要加上 scanf("%d:%d:%d",&d,&e,&f); s=c-f;就是 秒减去秒 不够加60,分减去一 if(s<0) { s=s+60; k++; } m=b-e-k;k=0; if(m<0) { m=m+60; k++; } h=a-d-k;//这个时候h可能为负,, while(h<0) { h=h+12;注意一天是12 小时。 } if(h>=10)与10比较是为了 判断前面加不加0 { printf("%d:",h); } else { printf("0%d:",h); } if(m>=10) { printf("%d:",m); } else { printf("0%d:",m); } if(s>=10) { printf("%d ",s); } else { printf("0%d ",s); } t--; } getchar();getchar();getchar(); }
其实 还有一个简单的方法
你可以把他们全部转化为秒 减去后 如果为负 可以加12乘以3600;直到不为负,然再得到小时 分 秒。