定义一个时钟结构体类型(包括:时,分,秒)用CLOCK结构体变量类型的全局变量编写时钟模拟显示程序,急求!!

如题所述

楼上的程序运行了一下,发现数字不会动。原因是参数只能传进去,出不来。用一个结构体指针就可以了。
这种方法比较简单,对资源的占用率很大。但是电脑资源还是很充足滴。其实可以调用<windows.h>的time函数来实现功能。
#include<stdio.h>
#include<stdlib.h>
struct clock
{
int hour;
int minute;
int second;
};
typedef struct clock CLOCK;
void Update(CLOCK *c)

{
c->second++;
if (c->second == 60)
{
c->second = 0;
c->minute++;
}
if (c->minute == 60)
{
c->minute = 0;
c->hour++;
}
if (c->hour == 24)
{
c->hour = 0;
}
}
void Display(CLOCK *c)
{
printf("%2d:%2d:%2d\r", c->hour, c->minute, c->second);
}
void Delay(void)
{
long t;
while(++t<50000000);
}
void main()
{
CLOCK c,*P;
P=&c;
c.hour = c.minute = c.second = 0;
while(1)
{
Update(P);
Display(P);
Delay();
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-15
struct clock
{
int hour;
int minute;
int second;
};
typedef struct clock CLOCK;
#include <stdio.h>
void Update(CLOCK c)
{
c.second++;
if (c.second == 60)
{
c.second = 0;
c.minute++;
}
if (c.minute == 60)
{
c.minute = 0;
c.hour++;
}
if (c.hour == 24)
{
c.hour = 0;
}
}
void Display(CLOCK c)
{
printf("%2d:%2d:%2d\r", c.hour, c.minute, c.second);
}
void Delay(void)
{
long t;
for (t=0; t<50000000; t++)
{

}
}
main()
{
long i;
CLOCK c;
c.hour = c.minute = c.second = 0;
for (i=0; i<100000; i++)
{
Update(c);
Display(c);
Delay();
}
}本回答被网友采纳
相似回答