用c语言编写用结构类型表示时间(时、分、秒)输入一个时间数组,再输入一个秒数,以h: m:s的格式输出该时间再过n秒后的时间值。试编写相应程序
时间: 2023-07-16 07:14:08 浏览: 163
以下是用 C 语言编写的程序,实现了输入一个时间数组和一个秒数,以 h:m:s 的格式输出该时间再过 n 秒后的时间值:
```c
#include <stdio.h>
struct time {
int hours;
int minutes;
int seconds;
};
int main() {
struct time t;
int n;
printf("Enter the time (hh:mm:ss): ");
scanf("%d:%d:%d", &t.hours, &t.minutes, &t.seconds);
printf("Enter the number of seconds to add: ");
scanf("%d", &n);
// calculate total seconds
int total_seconds = t.seconds + t.minutes * 60 + t.hours * 3600 + n;
// calculate new time values
t.hours = total_seconds / 3600 % 24;
t.minutes = total_seconds % 3600 / 60;
t.seconds = total_seconds % 60;
// print new time
printf("New time: %02d:%02d:%02d\n", t.hours, t.minutes, t.seconds);
return 0;
}
```
程序首先定义了一个结构类型 `time` 表示时间,包含了时、分、秒三个成员。然后在 `main()` 函数中,先输入一个时间数组,再输入一个秒数。接着将时间数组中的时、分、秒转换为总秒数,再加上需要增加的秒数,计算得到新的总秒数。最后从新的总秒数中计算出新的时、分、秒,输出新的时间。
需要注意的是,程序中用到了 `%02d` 的格式控制符,它表示将整数按照 2 位宽度输出,不足 2 位的用前导零补齐。这样输出的时间格式就能够保证时、分、秒均为 2 位宽度。
阅读全文