#define _CRT_SECURE_NO_WARNINGS//这行不用管,要不要无所谓,我不加这行scanf会报错
#include <stdio.h>
#include <math.h>
struct time {//新建time结构以及结构成员
int hour;
int min;
int sed;
};
int main() {
struct time t1, backtime;
int addt;
scanf("%d:%d:%d\n", &t1.hour, &t1.min, &t1.sed);
scanf("%d", &addt);
int total;
total = t1.hour * 3600 + t1.min * 60 + t1.sed;//把输入的时间换算成秒
total += addt;//加上输入的秒
//然后判断现在的total是否>=24小时,24小时=86400秒
while (total > 86399) {//这里你写>=86400应该也行
total = total - 86400;//这里如果写86399,运行的时候会发现多了一秒
}
if (total / 3600 >= 1) {//3600秒是一小时,这里判断有没有到一小时
backtime.hour = total / 3600;//求出一共有几个小时,这里取得是int,所以小数会自动忽略
}
else {
backtime.hour = 0;//没到一小时就写0小时
}
int min = total % 3600;//同上,这里是分钟
if (min/60 <= 60) {
backtime.min = min / 60;
}
else {//同上
backtime.min = 0;
}
backtime.sed = total - backtime.hour * 3600 - backtime.min * 60 ;
//这里就是最后剩下的total,应为经过前面的判断,所以现在的total不可能>=60
printf("%.2d:%.2d:%.2d", backtime.hour, backtime.min, backtime.sed);//.2是保持两位数的输出
return 0;
}
很多注释的 习题9-1 时间换算 φ(≧ω≦*)♪
最新推荐文章于 2022-07-29 15:45:04 发布