
2个回答
展开全部
如图,这样的程序可以吗?有什么需要改变的?
源码如下:
#include<stdio.h>
typedef struct time{
char hour,minute,second;
}time;
time elapsed_time(time time1,time time2);
int main()
{
time time[2],Dtime;
char hour,minute,second,i;
for(i=0 ; i<2;i++){ //输入时间
printf("TIME%d: H=" ,i);
scanf("%d" ,&time[i].hour);
printf("TIME%d: M=" ,i);
scanf("%d",&time[i].minute);
printf("TIME%d: S=" ,i);
scanf("%d",&time[i].second);
// printf("%d:%d:%d\n", time[i].hour,time[i].minute,time[i].second);
}
Dtime=elapsed_time(time[0],time[1]);
printf("The interval of time1 to time2 is %d:%d:%d\n", Dtime.hour,Dtime.minute,Dtime.second);
return 0;
}
time elapsed_time(time time1,time time2)
{
long s=0; //得到的s为time2-time1的秒数
time Dtime; //返回所用的时间对象
s= (time2.hour - time1.hour)*60; //求时的差,并化为分钟
s+= (time2.minute - time1.minute); //加上分钟的差
s*= 60; //化为秒差
s+= time2.second - time1.second; //加上秒差
if(s<0) s+=86400; //s若为负数,则加多一天保证为正(跨午夜),正常的一天即86400秒
// printf("s=%d",s);
Dtime.hour= (char) (s/3600); //除以一小时的3600秒得到小时
Dtime.minute= (char)( (s/60)%60 ); //除以60得到分钟,再取余数 去除小时
Dtime.second= (char)( s%60 ); //取60的余数得到秒
return Dtime;
}
更多追问追答
追答
网页端贴出了源码了,楼上的程序不能运行的!未经验证随便写的。
如有疑问或不明白请追问哦!

2025-07-16 广告
领课题库支持单选、填空、编程题等12种题型,可随机组卷。防作弊功能包括人脸识别、IP限制,某高校用其组织10万人在线考试无故障。领课多端适配:电脑Web、安卓/iOS APP、微信小程序、H5。学员可碎片化学,数据实时同步,某网校APP端用...
点击进入详情页
本回答由领课提供
2018-01-21
展开全部
typedef struct
{
unsigned char hour;
unsigned char min;
unsigned char sec;
}t_TIME;
t_TIME elapsed_time(t_TIME time1,t_TIME time2)
{
t_TIME tempT;
long td,t1,t2;
t2=time2.hour*60*60+time2.min*60+time2.sec
t1=time1.hour*60*60+time1.min*60+time1.sec;
if(t2>t1)
td=t2-t1;
else
td=t2+24*60*60-t1;
tempT.hour=td/(60*60);
tempT.min=td%(60*60)/60;
tempT.sec=td%60
return tempT;
}
追问
如果让他运行呢
怎修改
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询