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秒*/ } } 因篇幅问题不能全部显示,请点此查看更多更全内容