C语言作业:结构体编程练习 在屏幕上模拟显示一个数字式时钟 源代码能给我的话+50,感谢
按如下方法定义一个时钟结构体类型:structclock{inthour;intminute;intsecond;};typedefstructclockCLOCK;然后...
按如下方法定义一个时钟结构体类型:
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秒*/
}
} 展开
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秒*/
}
} 展开
3个回答
展开全部
#include <stdio.h>
struct clock {
int hour;
int minute;
int second;
};
typedef struct clock CLOCK;
/*
函数功能:时、分、秒时间的更新
函数参数:无
函数返回值:无
*/
void Update(CLOCK *myclock) {
myclock->second++;
if (myclock->second == 60) { /*若second值为60,表示已过1分钟,则 minute值加1*/
myclock->second = 0;
myclock->minute++;
}
if (myclock->minute == 60){ /*若minute值为60,表示已过1小时,则 hour值加1*/
myclock->minute = 0;
myclock->hour++;
}
if (myclock->hour == 24) { /*若hour值为24,则hour的值从0开始计时*/
myclock->hour = 0;
}
}
/*
函数功能:时、分、秒时间的显示
函数参数:无
函数返回值:无
*/
void Display(CLOCK *myclock) { /*用回车符'\r'控制时、分、秒显示的位置*/
printf("%2d:%2d:%2d\r", myclock->hour, myclock->minute, myclock->second);
}
/*
函数功能:模拟延迟1秒的时间
函数参数:无
函数返回值:无
*/
void Delay(void) {
long t;
for (t = 0; t < 290000000; t++) {
/*循环体为空语句的循环,起延时作用*/
}
}
int main(){
CLOCK myclock;
long i;
myclock.hour = myclock.minute = myclock.second = 0; /*hour,minute,second赋初值0*/
for (i = 0; i < 100000; i++) { /*利用循环结构,控制时钟运行的时间*/
Update(&myclock); /*时钟更新*/
Display(&myclock); /*时间显示*/
Delay(); /*模拟延时1秒*/
}
return 0;
}
struct clock {
int hour;
int minute;
int second;
};
typedef struct clock CLOCK;
/*
函数功能:时、分、秒时间的更新
函数参数:无
函数返回值:无
*/
void Update(CLOCK *myclock) {
myclock->second++;
if (myclock->second == 60) { /*若second值为60,表示已过1分钟,则 minute值加1*/
myclock->second = 0;
myclock->minute++;
}
if (myclock->minute == 60){ /*若minute值为60,表示已过1小时,则 hour值加1*/
myclock->minute = 0;
myclock->hour++;
}
if (myclock->hour == 24) { /*若hour值为24,则hour的值从0开始计时*/
myclock->hour = 0;
}
}
/*
函数功能:时、分、秒时间的显示
函数参数:无
函数返回值:无
*/
void Display(CLOCK *myclock) { /*用回车符'\r'控制时、分、秒显示的位置*/
printf("%2d:%2d:%2d\r", myclock->hour, myclock->minute, myclock->second);
}
/*
函数功能:模拟延迟1秒的时间
函数参数:无
函数返回值:无
*/
void Delay(void) {
long t;
for (t = 0; t < 290000000; t++) {
/*循环体为空语句的循环,起延时作用*/
}
}
int main(){
CLOCK myclock;
long i;
myclock.hour = myclock.minute = myclock.second = 0; /*hour,minute,second赋初值0*/
for (i = 0; i < 100000; i++) { /*利用循环结构,控制时钟运行的时间*/
Update(&myclock); /*时钟更新*/
Display(&myclock); /*时间显示*/
Delay(); /*模拟延时1秒*/
}
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <sys/unist.h>
#include <sys/resource.h>
#include <sys/time.h>
double seconds(void) {
strict rusage rusage;
if(!getrusage(RUSAGE_SELF, &rusage)) {
res += rusage.ru_utime.tv_sec + 1e-6 * rusage.ru_utime.tv_usec;
res += rusage.ru_stime.tv_sec + 1e-6 * rusage.ru_stime.tv_usec;
}
return res;
}
#include <sys/resource.h>
#include <sys/time.h>
double seconds(void) {
strict rusage rusage;
if(!getrusage(RUSAGE_SELF, &rusage)) {
res += rusage.ru_utime.tv_sec + 1e-6 * rusage.ru_utime.tv_usec;
res += rusage.ru_stime.tv_sec + 1e-6 * rusage.ru_stime.tv_usec;
}
return res;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序运行正确,只是有一点点的小瑕疵,
for (t=0; t<50000000; t++)
控制一秒延迟,这里在我的系统上面,还需要加一个零,计时器才差不多相当于过1秒。
不知道LZ有什么潜在疑问呢?
for (t=0; t<50000000; t++)
控制一秒延迟,这里在我的系统上面,还需要加一个零,计时器才差不多相当于过1秒。
不知道LZ有什么潜在疑问呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询