定义一个时间结构体变量(包括小时,分,秒)。编写几个函数分别实现以下功能: (1)加法运算:时间结构

(1)加法运算:时间结构体变量加秒数,返回新的时间结构体变量;(2)减法运算:两个时间结构体变量相减,返回其相隔的秒数;(3)减法运算:时间结构体变量减秒数,返回新的时间... (1)加法运算:时间结构体变量加秒数,返回新的时间结构体变量;
(2)减法运算:两个时间结构体变量相减,返回其相隔的秒数;
(3)减法运算:时间结构体变量减秒数,返回新的时间结构体变量;
展开
 我来答
小旋风了吗
2010-12-06 · TA获得超过908个赞
知道小有建树答主
回答量:903
采纳率:87%
帮助的人:176万
展开全部
#include <stdio.h>

typedef struct{
int hour;
int minute;
int second;
} Time;

Time *add_time(Time *pt1, Time *pt2)
{
Time *temp=(Time *) malloc(sizeof(Time));
int carry=0;
temp->second=pt1->second+pt2->second;
if(temp->second>=60)
{
temp->second-=60;
carry=1;
}
else
carry=0;
temp->minute=pt1->minute+pt2->minute+carry;
if(temp->minute>=60)
{
temp->minute-=60;
carry=1;
}
else
carry=0;
temp->hour=pt1->hour+pt2->hour+carry;
return temp;
}

Time *sub_time(Time *pt1, Time *pt2)
{
Time *temp=(Time *) malloc(sizeof(Time));
int carry=0;
temp->second=pt1->second-pt2->second;
if(temp->second<0)
{
temp->second+=60;
carry=-1;
}
else
carry=0;
temp->minute=pt1->minute-pt2->minute+carry;
if(temp->minute<0)
{
temp->minute+=60;
carry=-1;
}
temp->hour=pt1->hour-pt2->hour+carry;
if(temp->hour<0)
{
printf("Error!\n");
return NULL;
}
else
return temp;
}

Time *sub_sec_time(Time *pt, int sec)
{
Time *temp=(Time *)malloc(sizeof(Time));
int carry=0;
temp->second=pt->second-sec;
if(temp->second<0)
{
temp->second+=60;
carry=-1;
}
else
carry=0;
temp->minute=pt->minute+carry;
if(temp->minute<0)
{
temp->minute+=60;
carry=-1;
}
else
carry=0;
temp->hour=pt->hour+carry;
if(temp->hour<0)
{
printf("Error!\n");
return NULL;
}
else
return temp;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fjddy
2010-12-06 · TA获得超过342个赞
知道小有建树答主
回答量:486
采纳率:0%
帮助的人:348万
展开全部
减法

#include "stdafx.h"
int main(int argc, char* argv[])
{
int h, m, s;
turning: scanf("%d %d %d", &h, &m, &s);
if(h>=24)
{
printf("你输入的数不符合要求。\n");
goto turning;
}
else
{
if(m>=60)
{
printf("你输入的数不符合要求。\n");
goto turning;
}
else
{
if(s>=60)
{
//printf("你输入的数不符合要求。\n");
goto turning;
}
else
{
//printf("请再输入一组数。\n");
}
}
}
int h1, m1, s1;
scanf("%d %d %d", &h1, &m1, &s1);
if(h1>=24)
{
printf("你输入的数不符合要求。\n");
goto turning;
}
else
{
if(m1>=60)
{
printf("你输入的数不符合要求。\n");
goto turning;
}
else
{
if(s1>=60)
{
printf("你输入的数不符合要求。\n");
goto turning;
}
else
{
printf("输入正确!\n");
}
}
}
if(s<s1)
{
s=s+60;
m=m-1;
}
else
{
if(m<m1)
{
m=m+60;
h=h-1;
}
else
{
if(h<h1)
{
printf("得出的时间为负数,不符合规则!\n");
goto turning;
}
}
}
int h2, m2, s2;
h2=h-h1;
m2=m-m1;
s2=s-s1;
if(m2<0)
{
m2=m2+60;
h2=h2-1;
} //如果不这样的话那就会出现负数了。
printf("得出的时间为:%d:%d:%d\n", h2, m2, s2);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式