C语言实验——时间间隔
时间: 1ms 内存:64M
描述:
从键盘输入两个时间点(24小时制),输出两个时间点之间的时间间隔,时间间隔用“小时:分钟:秒”表示。
如:3点5分25秒应表示为--03:05:25.假设两个时间在同一天内,时间先后顺序与输入无关。
输入:
输入包括两行。
第一行为时间点1。
第二行为时间点2。
输出:
以“小时:分钟:秒”的格式输出时间间隔。
格式参看输入输出。
示例输入:
12:01:12
13:09:43
示例输出:
01:08:31
提示:
参考答案(内存最优[1092]):
#include<stdio.h>
int main()
{
int h1,h2,m1,m2,s1,s2,h,m,s;
long tc;
scanf("%d:%d:%d",&h1,&m1,&s1);
scanf("%d:%d:%d",&h2,&m2,&s2);
s=s1-s2;
m=m1-m2;
h=h1-h2;
tc=h*3600l+m*60l+s;
if(tc<0) tc=-tc;
h=tc/3600;
m=(tc-3600*h)/60;
s=tc%60;
printf("%02d:%02d:%02d\n",h,m,s);
return 0;
}
参考答案(时间最优[0]):
#include<iostream>
using namespace std;
int main()
{
int hour,h,minute,m,second,s,ss,sh,sm,sss;
char c;
cin>>hour>>c>>minute>>c>>second>>h>>c>>m>>c>>s;
ss=hour*3600+second+minute*60-h*3600-s-m*60;
ss=ss>0?ss:-ss;
sh=ss/3600;
sm=ss%3600/60;
sss=ss%60;
if(sh<10)
cout<<"0"<<sh;
else
cout<<sh;
cout<<":";
if(sm<10)
cout<<"0"<<sm;
else
cout<<sm;
cout<<":";
if(sss<10)
cout<<"0"<<sss;
else
cout<<sss;
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。