C语言:时间换算:用结构类型表示时间内容(时间以时、分、秒表示),输入一个时间数值, 再输入一个秒数 n,以 h:m:s 的格式输出该时间再过 n 秒后的时间值(超过 24 点就 从 0 点开始计时)。试编写相应程序。
时间: 2024-02-03 08:13:32 浏览: 150
以下是用 C 语言编写的程序:
```c
#include <stdio.h>
struct Time {
int hour;
int minute;
int second;
};
void addSeconds(struct Time *time, int seconds) {
time->second += seconds;
time->minute += time->second / 60;
time->second %= 60;
time->hour += time->minute / 60;
time->minute %= 60;
time->hour %= 24;
}
int main() {
struct Time time;
int seconds;
printf("请输入时间(时:分:秒):");
scanf("%d:%d:%d", &time.hour, &time.minute, &time.second);
printf("请输入秒数:");
scanf("%d", &seconds);
addSeconds(&time, seconds);
printf("时间过 %d 秒后为:%02d:%02d:%02d\n", seconds, time.hour, time.minute, time.second);
return 0;
}
```
首先定义了一个 `Time` 结构体来表示时间,包含了小时、分钟和秒三个成员变量。
`addSeconds` 函数用来将秒数加到时间中。因为可能会造成进位,所以需要用到除法和取模运算。
在 `main` 函数中,首先读入时间和秒数,然后调用 `addSeconds` 函数计算出时间过 `seconds` 秒后的时间。最后输出结果。
注意,在输出时间时需要用 `%02d` 来格式化输出,这样可以保证输出的小时、分钟、秒数都是两位数,并且不足两位的地方用 0 填充。
阅读全文