用结构型表示时间内容,输入一个时间数值,将其加 1 秒后输出,时间格式为:hh: mm: ss,即时:分:秒, 当小时等于 24 小时,置为 0。
时间: 2023-05-28 17:02:14 浏览: 85
可以使用结构体来表示时间内容,每个时间部分都可以用一个整型变量来表示。假设结构体名称为Time。
首先需要将输入的时间数值解析成该结构体的变量,可以使用sscanf函数将字符串转换为数字,并将对应的数字赋值给结构体变量的相应成员。
然后对秒数加 1,如果超过 59,将秒数置为 0,同时将分钟数加 1,以此类推,直到小时数加 1。如果小时数超过 23,将其置为 0。
最后使用printf函数输出结果,格式为 "%02d:%02d:%02d",其中 `%02d` 表示将整型数值转换为两位数字,不足位用 0 填充。
完整代码如下所示:
```c
#include <stdio.h>
typedef struct {
int hour;
int minute;
int second;
} Time;
int main() {
Time time;
char str[9];
int res;
// 读取时间数值并解析为结构体变量
printf("请输入时间(格式为 hh:mm:ss):");
scanf("%s", str);
res = sscanf(str, "%d:%d:%d", &(time.hour), &(time.minute), &(time.second));
if (res != 3) {
printf("输入格式错误!\n");
return 1;
}
// 对时间加 1 秒
time.second++;
if (time.second >= 60) {
time.second = 0;
time.minute++;
if (time.minute >= 60) {
time.minute = 0;
time.hour++;
if (time.hour >= 24) {
time.hour = 0;
}
}
}
// 输出结果
printf("加 1 秒后的时间为:%02d:%02d:%02d\n", time.hour, time.minute, time.second);
return 0;
}
```