L1-5 时间换算
分数 15
全屏浏览题目
切换布局
作者 C课程组
单位 浙江大学
本题要求编写程序,以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>
void addSeconds(int *hours, int *minutes, int *seconds, int n) {
*seconds += n;
*minutes += *seconds / 60;
*seconds %= 60;
*hours += *minutes / 60;
*minutes %= 60;
*hours %= 24;
}
int main() {
int hours, minutes, seconds;
int n;
// 输入起始时间
scanf("%d:%d:%d", &hours, &minutes, &seconds);
// 输入秒数
scanf("%d", &n);
// 计算并输出结果时间
addSeconds(&hours, &minutes, &seconds, n);
printf("%02d:%02d:%02d\n", hours, minutes, seconds);
return 0;
}
程序中的 addSeconds
函数用于计算给定时间再过 n 秒后的时间值。它接受指向小时、分钟和秒的指针以及要添加的秒数 n。函数首先将秒数加到给定的秒数上,然后根据进位规则更新分钟和小时。最后,程序调用 addSeconds
函数并输出结果时间。
例如,对于输入样例 "11:59:40" 和 "30",程序将输出 "12:00:10"。