实验9-2 时间换算(15 分)
本题要求编写程序,以hh:mm:ss的格式输出某给定时间再过n秒后的时间值(超过23:59:59就从0点开始计时)。
输入格式:
输入在第一行中以hh:mm:ss的格式给出起始时间,第二行给出整秒数n(<60)。
输出格式:
输出在一行中给出hh:mm:ss格式的结果时间。
输入样例:
11:59:40
30
输出样例:
12:00:10
#include<stdio.h>
#include<string.h>
//思路一:因为时间的进位情况比较清晰,可以使用分支语句进行处理,分别判断增加后的秒数是不是大于等于60,以及
// 分钟上面是不是大于等于59,以及小时上面是不是大于等于23
//思路二:使用结构体,依次判断秒、分、时,是否需要进位
/*
//思路一
int main()
{
int i, num_ss, temp; //num_ss为输入的秒
int hh, mm, ss;
scanf("%d:%d:%d\n",&hh,&mm,&ss);
scanf("%d\n", &num_ss);
ss += num_ss;
if (ss >= 60 && mm < 59)
{
ss -= 60;
mm += 1;
hh = hh;
}
if (ss >= 60 && mm >= 59 && hh <23)
{
ss -= 60;
mm = 0;
hh += 1;
}
if (ss >= 60 && mm >= 59 && hh >= 23)
{
ss -= 60;
mm = 0;
hh = 0;
}
printf("%02d:%02d:%02d\n",hh,mm,ss); //注意:输出格式的控制为两位
return 0;
}
*/
//思路二
struct time
{
int hh, mm, ss;
};
int main()
{
struct time x; //定义时间结构体变量 x
scanf("%d:%d:%d", &x.hh, &x.mm, &x.ss);
int num_ss;
scanf("%d", &num_ss);
x.ss += num_ss;
if (x.ss >= 60) //判断秒 是否需要进位
{
x.ss -= 60;
x.mm++;
}
if (x.mm >= 60) //判断分 是否需要进位
{
x.mm -= 60;
x.hh++;
}
if (x.hh >= 24) //判断时是 否需要进位
{
x.hh -= 24;
}
printf("%02d:%02d:%02d", x.hh, x.mm, x.ss);
return 0;
}
实验9-2 时间换算(15 分)
最新推荐文章于 2022-11-19 14:55:43 发布