如何用C语言实现时间相加

如题所述

思路:

1.将两个数分为前两位和后两位。

2.后两位先相加,如果超过60,则减去60,并进一位。

3.前两位相加还要加上进位,如果超过24,则减去24.

4.将前两位和后两位组合,形成最终要输出的形式

完整的程序代码如下,不懂之处可以看注解:

#include<stdio.h>

void main()

{

int a,b,c,d,e,f,ab,ce,df;

int i=0;

printf("Input two number:\n");//输入两行数据,每行一个整数。

scanf("%d%d",&a,&b);  //a代表第一个数,b代表第二个数

c=a/100;             //c代表a的前两位数

d=a%100;            //d代表a的后两位数

    e=b/100;           //e代表b的前两位数

f=b%100;          //f代表b的后两位数

    df=d+f;

if(df>=60)       //如果后两位相加超过60,则减去60,并进一位。

{

df-=60;

i++;

}

ce=c+e+i;

if(ce>=24)       //如果前两位相加超过24,则减去24。

{

ce-=24;

}

ab=ce*100+df;   //最后需要输出的数据

printf("The output is:\n%d\n",ab);

}

ps:运行结果如下:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-08-28
#include <stdio.h>
int main()
{
int AH,AM,AS,BH,BM,BS,CH=0,CM=0,CS=0;
printf("请输入时间A");
L1:
scanf("%d %d %d",&AH,&AM,&AS);
if(AH>60||AH<0||AM>60||AM<0||AS>60||AS<0)
{
printf("不合法的时间,请重新输入");
goto L1;

}
printf("请输入时间B");
L2:
scanf("%d %d %d",&BH,&BM,&BS);
if(BH>60||BH<0||BM>60||BM<0||BS>60||BS<0)
{
printf("不合法的时间,请重新输入");
goto L2;

}
CS=BS+AS;
if(CS>=60)
{
CS=CS-60;
CM=AM+BM+1;
}
else
{
CM=AM+BM;
}
if(CM>=60)
{
CM=CM-60;
CH=AH+BH+1;
}
else
CH=AH+BH;
printf("时间和为:");
printf("%d,%d,%d",CH,CM,CS);
system("pause");

}本回答被网友采纳
相似回答