c语言作业!!!!急!!!!很简单!!

在屏幕上模拟显示一个数字式时钟按如下方法定义一个时钟结构体类型:structclock{inthour;intminute;intsecond;};typedefstru... 在屏幕上模拟显示一个数字式时钟
按如下方法定义一个时钟结构体类型:

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秒*/
}
}
展开
 我来答
Xiinho
推荐于2020-12-12 · TA获得超过1279个赞
知道小有建树答主
回答量:776
采纳率:0%
帮助的人:762万
展开全部
#include <stdio.h>
struct clock
{
int hour;
int minute;
int second;
};
typedef struct clock CLOCK;

//int t.hour, t.minute, t.second; /*全局变量定义*/
/*
函数功能:时、分、秒时间的更新
函数参数:无
函数返回值:无
*/
CLOCK t;

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

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

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

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

void main()
{
long i;

t.hour = t.minute = t.second = 0; /*t.hour,t.minute,t.second赋初值0*/
for (i=0; i<100000; i++) /*利用循环结构,控制时钟运行的时间*/
{
Update(); /*时钟更新*/
Display(); /*时间显示*/
Delay(); /*模拟延时1秒*/
}
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
naobing111
2011-01-06 · TA获得超过418个赞
知道小有建树答主
回答量:150
采纳率:0%
帮助的人:182万
展开全部
注:你的延时程序在我的电脑上不太精确,我就用了一个系统函数Sleep()来代替了。使用它要加头文件windows.h。如果你不想用,可以注释掉,然后用你自己的Delay函数。

#include <stdio.h>
#include <windows.h>

struct clock
{
int hour;
int minute;
int second;
};
typedef struct clock CLOCK;
CLOCK miniClock;
/*
函数功能:时、分、秒时间的更新
函数参数:无
函数返回值:无
*/
void Update(void)
{
miniClock.second++;
if (miniClock.second == 60) /*若second值为60,表示已过1分钟,则 minute值加1*/
{
miniClock.second = 0;
miniClock.minute++;
}
if (miniClock.minute == 60) /*若minute值为60,表示已过1小时,则 hour值加1*/
{
miniClock.minute = 0;
miniClock.hour++;
}
if (miniClock.hour == 24) /*若hour值为24,则hour的值从0开始计时*/
{
miniClock.hour = 0;
}
}

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

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

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

void main()
{
long i;

miniClock.hour = miniClock.minute = miniClock.second = 0; /*hour,minute,second赋初值0*/
for (i=0; i<100000; i++) /*利用循环结构,控制时钟运行的时间*/
{
Update(); /*时钟更新*/
Display(); /*时间显示*/
//Delay(); /*模拟延时1秒*/
Sleep(1000);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式