求助一道C语言题目,结构体与函数的,谢谢

在屏幕上模拟显示一个数字式时钟
按如下方法定义一个时钟结构体类型:

struct clock
{
int hour;
int minute;
int second;
};
typedef struct clock CLOCK;

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

#include <stdio.h>
int hour, minute, second; /*全局变量定义*/
/*
函数功能:时、分、秒时间的更新
函数参数:无
函数返回值:无
*/
void Update(void)
{
second++;
if (second == 60) /*若second值为60,表示已过1分钟,则 minute值加1*/
{
second = 0;
minute++;
}
if (minute == 60) /*若minute值为60,表示已过1小时,则 hour值加1*/
{
minute = 0;
hour++;
}
if (hour == 24) /*若hour值为24,则hour的值从0开始计时*/
{
hour = 0;
}
}

/*函数功能:时、分、秒时间的显示
函数参数:无
函数返回值:无
*/
void Display(void) /*用回车符'\r'控制时、分、秒显示的位置*/
{
printf("%2d:%2d:%2d\r", hour, minute, second);
}

/*函数功能:模拟延迟1秒的时间
函数参数:无
函数返回值:无
*/
void Delay(void)
{
long t;

for (t=0; t<50000000; t++)
{
/*循环体为空语句的循环,起延时作用*/
}
}

main()
{
long i;

hour = minute = second = 0; /*hour,minute,second赋初值0*/
for (i=0; i<100000; i++) /*利用循环结构,控制时钟运行的时间*/
{
Update(); /*时钟更新*/
Display(); /*时间显示*/
Delay(); /*模拟延时1秒*/
}
}

写的很好啊,又学习了。但不知你要问什么呢?追问

就是不用全局变量来写,改用结构体来写这个程序咯

追答

#include
struct clock
{
int hour;
int minute;
int second;
};
struct clock CLOCK;
void Update(void)
{
CLOCK.second++;
if (CLOCK.second == 60) /*若second值为60,表示已过1分钟,则 minute值加1*/
{
CLOCK.second = 0;
CLOCK.minute++;
}
if (CLOCK.minute == 60) /*若minute值为60,表示已过1小时,则 hour值加1*/
{
CLOCK.minute = 0;
CLOCK.hour++;
}
if (CLOCK.hour == 24) /*若hour值为24,则hour的值从0开始计时*/
{
CLOCK.hour = 0;
}
}

/*函数功能:时、分、秒时间的显示
函数参数:无
函数返回值:无
*/
void Display(void) /*用回车符'\r'控制时、分、秒显示的位置*/
{
printf("%2d:%2d:%2d\r", CLOCK.hour, CLOCK.minute, CLOCK.second);
}

/*函数功能:模拟延迟1秒的时间
函数参数:无
函数返回值:无
*/
void Delay(void)
{
long t;

for (t=0; t<500000000; t++)
{
/*循环体为空语句的循环,起延时作用*/
}
}

main()
{
long i;

CLOCK.hour =CLOCK. minute = CLOCK.second = 0; /*hour,minute,second赋初值0*/
for (i=0; i<100000; i++) /*利用循环结构,控制时钟运行的时间*/
{
Update(); /*时钟更新*/
Display(); /*时间显示*/
Delay(); /*模拟延时1秒*/
}
}
是不是要这样?

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网