请定义一个时钟结构体类型,它包含“时,分,秒”3个成员,然后将习题7.2中用全局变量编写的时钟模拟显示程序改成用结构体指针变量作函数参数重新编写该程序。
时间: 2024-02-13 09:07:21 浏览: 95
好的,以下是一个时钟结构体类型的定义,它包含“时,分,秒”3个成员:
```c
typedef struct {
int hour;
int minute;
int second;
} Clock;
```
其中,hour表示小时数,取值范围为0-23;minute表示分钟数,取值范围为0-59;second表示秒数,取值范围为0-59。这个结构体类型可以用来表示一个具体的时钟时间。
下面是使用结构体指针变量作函数参数的时钟模拟显示程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
typedef struct {
int hour;
int minute;
int second;
} Clock;
void displayClock(Clock* pClock);
int main()
{
Clock clock = {0, 0, 0};
Clock* pClock = &clock;
while (1) {
system("cls"); // 清屏
displayClock(pClock);
Sleep(1000); // 延时1秒
pClock->second++;
if (pClock->second == 60) {
pClock->second = 0;
pClock->minute++;
if (pClock->minute == 60) {
pClock->minute = 0;
pClock->hour++;
if (pClock->hour == 24) {
pClock->hour = 0;
}
}
}
}
return 0;
}
void displayClock(Clock* pClock)
{
printf("%02d:%02d:%02d\n", pClock->hour, pClock->minute, pClock->second);
}
```
在main函数中定义了一个时钟结构体变量clock,并定义了一个指向该变量的指针pClock。while循环中,每次调用displayClock函数显示当前时间,然后延时1秒,最后更新时钟时间。displayClock函数的参数是一个时钟结构体指针变量,用来显示该时钟的小时数、分钟数和秒数。
阅读全文