C语言实验——时间间隔

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;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注