您的当前位置:首页正文

C语言竞赛题4

2023-07-13 来源:我们爱旅游


4. 在屏幕上模拟显示一个数字式时钟

定义一个时钟结构体类型:

struct clock

{

int hour;

int minute;

int second;

};

typedef struct clock CLOCK;

然后,将下列用全局变量编写的时钟模拟显示程序改成用CLOCK结构体变量类型重新编写。

void update(CLOCK *t)

{

t->second++;

if (t->second == 60)

{

t->second = 0;

t->minute++;

}

if (t->minute == 60)

{

t->minute = 0;

t->hour++;

}

if (t->hour == 24)

t->hour = 0;

}

void display(CLOCK *t)

{

printf(\"%2d:%2d:%2d\\r\

t->hour,

t->minute,

t->second);

}

答案:

#include

#include

int hour, minute, second; /*全局变量定义*/

/*函数功能:时、分、秒时间的更新

函数参数:无

函数返回值:无

*/

void Update(void)

{

second++;

if (second == 60) {

second = 0;

minute++;

}

if (minute == 60) {

minute = 0;

/*若second值为60,表示已过一分钟,则 minute值加1*/

/*若minute值为60,表示已过一小时,则 hour值加1*/

hour++;

}

if (hour == 24) /*若hour值为24,则hour的值从0开始计时*/

{

hour = 0;

}

}

/*函数功能:时、分、秒时间的显示

函数参数:无

函数返回值:无

*/

void Display(void)

{

/*用回车符'\\r'控制时、分、秒显示的位置*/

printf(\"%2d:%2d:%2d\\r\

}

/*函数功能:模拟延迟1秒的时间

函数参数:无

函数返回值:无

*/

void Delay(void)

{

long t;

for (t=0; t<50000000; t++)

{

/*循环体为空语句的循环,起延时作用*/

}

}

/*主函数*/

main()

{

long i;

hour = minute = second = 0; for (i=0; i<100000; i++) {

Update(); /*时钟更新*/

Display(); /*时间显示*/

Delay(); /*延时1秒*/

}

/*hour,minute,second赋初值0*/

/*利用循环结构,控制时钟运行的时间*/

}

答案:

#include

struct clock

{

int hour;

int minute;

int second;

};

typedef struct clock CLOCK;

/*函数功能:时、分、秒时间的更新

函数参数:指向CLOCK结构体变量的指针t,表示时、分、秒时间

函数返回值:无

*/

void Update(CLOCK *t)

{

t->second++;

if (t->second == 60) /*若second值为60,表示已过一分钟,则minute值加1*/

{

t->second = 0;

t->minute++;

}

if (t->minute == 60) /*若minute值为60,表示已过一小时,则hour值加1*/

{

t->minute = 0;

t->hour++;

}

if (t->hour == 24) /*若hour值为24,则hour值从0开始计时*/

{

t->hour = 0;

}

}

/*函数功能:时、分、秒时间的显示

函数参数:指向CLOCK结构体变量的指针t,表示时、分、秒时间

函数返回值:无

*/

void Display(CLOCK *t)

{

printf(\"%2d:%2d:%2d\\r\

}

/*函数功能:模拟延迟1秒的时间

函数参数:无

函数返回值:无

*/

void Delay(void)

{

long t;

for (t=0; t<50000000; t++)

{

/*循环体为空语句的循环,起延时作用*/

}

}

main()/*主函数*/

{

long i;

CLOCK myclock;

myclock.hour = myclock.minute = myclock.second = 0;

for(i=0; i<100000; i++) /*利用循环结构,控制时钟运行的时间*/

{

Update(&myclock); /*时钟更新*/

Display(&myclock); /*时间显示*/

Delay(); /*模拟延时1秒*/

}

}

因篇幅问题不能全部显示,请点此查看更多更全内容