| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 972 人关注过本帖
标题:用C语言编出2008年北京奥运会倒计时,天天.时时.分分.秒秒?
收藏  订阅  推荐  打印
yelusu
Rank: 1
等级:新手上路
帖子:11
积分:222
注册:2008-4-15
用C语言编出2008年北京奥运会倒计时,天天.时时.分分.秒秒?

想了半天,不知道从何处入手。大家帮忙提示点思路咯!
不知道利用死循环能能编出来?

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

int i_sleep(int n)//延迟n秒函数
{
    time_t start,end;
    start=time(NULL);
    end=time(NULL);
    while(end-start<n)
    {
        end=time(NULL);
    }
    return 0;
}

int showtime()
{
        struct tm timestru,*tmtime;
        time_t endtime, curtime;
        long ttime;

        timestru.tm_year = 2008 - 1900;
        timestru.tm_mon = 8 - 1;         
        timestru.tm_mday = 8;        
        timestru.tm_hour = 20;
        timestru.tm_min = 0;
        timestru.tm_sec = 0;
      
        endtime = mktime(&timestru);
        curtime = time(NULL);
        ttime = endtime - curtime;
        tmtime = localtime(&curtime);
      
        printf("\n\n\n");
        printf("\t\t ———————————————————————— \n");
        printf("\t\t|        2008北京奥运倒计时       |\n");
        printf("\t\t|———————————————————————|\n");
        printf("\t\t|     当前时间 %04d年%02d月%02d日 %02d时%02d分%02d秒     |\n",
                tmtime->tm_year + 1900, tmtime->tm_mon + 1, tmtime->tm_mday ,
                tmtime->tm_hour, tmtime->tm_min, tmtime->tm_sec);
        printf("\t\t|———————————————————————|\n");
        printf("\t\t|    距北京奥运 %04d年%02d月%02d日 %02d时%02d分%02d秒    |\n",
                timestru.tm_year + 1900, timestru.tm_mon + 1, timestru.tm_mday,
                timestru.tm_hour, timestru.tm_min, timestru.tm_sec);
        printf("\t\t|———————————————————————|\n");      
        printf("\t\t|           还有%3d天%02d时%02d分%02d秒              |\n",
                ttime/86400, ttime%86400/3600, ttime%86400%3600/60, ttime%86400%3600%60);
        printf("\t\t ———————————————————————— \n\t\t");
      
        return 0;        
}

int main(int argc, char *argv[])
{
        while(1)
        {
                system("cls");
                showtime();
                i_sleep(1);
        }
        return 0;
}

结果:


以下是我找的程序,有一处错误!请高手帮忙解决了!
题目在以下附件里:


[ 本帖最后由 yelusu 于 2008-5-27 17:22 编辑 ]

[ 本帖最后由 yelusu 于 2008-5-27 17:24 编辑 ]
附件: 只有本站会员才能下载或查看附件,请您 登录注册
2008-5-21 20:37
yelusu
Rank: 1
等级:新手上路
帖子:11
积分:222
注册:2008-4-15

咋就没人会呢!
用C语言好像是难了!
不知道用C++能不能做出来!
2008-5-22 13:10
广陵绝唱
Rank: 4
等级:高级会员
帖子:767
积分:8924
威望:1
注册:2008-2-15

用奥运会开办的时间,减去获取的现在的系统时间,就是剩余的时间了,应该很简单的吧。
2008-5-24 21:51
伤心的我
Rank: 2
等级:注册会员
帖子:82
积分:1034
注册:2008-5-24

我想这应该没这么简单吧,不会是那种像电子表一样秒秒都在倒计时的那种吧!!
2008-5-24 21:58
josen0205
Rank: 3Rank: 3
等级:中级会员
帖子:177
积分:2216
注册:2007-5-8

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

int i_sleep(int n)//延迟n秒函数
{
    time_t start,end;
    start=time(NULL);
    end=time(NULL);
    while(end-start<n)
    {
        end=time(NULL);
    }
    return 0;
}

int showtime()
{
    struct tm timestru,*tmtime;
    time_t endtime, curtime;
    long ttime;

    timestru.tm_year = 2008 - 1900;
    timestru.tm_mon = 8 - 1;    
    timestru.tm_mday = 8;     
    timestru.tm_hour = 20;
    timestru.tm_min = 0;
    timestru.tm_sec = 0;
    
    endtime = mktime(&timestru);
    curtime = time(NULL);
    ttime = endtime - curtime;
    tmtime = localtime(&curtime);
    
    printf("\n\n\n");
    printf("\t\t ———————————————————————— \n");
    printf("\t\t|        2008北京奥运倒计时       |\n");
    printf("\t\t|———————————————————————|\n");
    printf("\t\t|     当前时间 %04d年%02d月%02d日 %02d时%02d分%02d秒     |\n",
        tmtime->tm_year + 1900, tmtime->tm_mon + 1, tmtime->tm_mday ,
        tmtime->tm_hour, tmtime->tm_min, tmtime->tm_sec);
    printf("\t\t|———————————————————————|\n");
    printf("\t\t|    距北京奥运 %04d年%02d月%02d日 %02d时%02d分%02d秒    |\n",
        timestru.tm_year + 1900, timestru.tm_mon + 1, timestru.tm_mday,
        timestru.tm_hour, timestru.tm_min, timestru.tm_sec);
    printf("\t\t|———————————————————————|\n");    
    printf("\t\t|           还有%3d天%02d时%02d分%02d秒              |\n",
        ttime/86400, ttime%86400/3600, ttime%86400%3600/60, ttime%86400%3600%60);
    printf("\t\t ———————————————————————— \n\t\t");
    
    return 0;     
}

int main(int argc, char *argv[])
{
    while(1)
    {
        system("cls");
        showtime();
        i_sleep(1);
    }
    return 0;
}

[ 本帖最后由 josen0205 于 2008-5-25 12:26 编辑 ]

只有想不到,没有做不到
2008-5-25 01:12
njinji007
Rank: 1
等级:新手上路
帖子:22
积分:322
注册:2008-4-14

有点那个,不太懂了.
2008-5-25 01:41
伤心的我
Rank: 2
等级:注册会员
帖子:82
积分:1034
注册:2008-5-24

我还没学time这个库函数。它究竟是怎么用?
2008-5-25 09:22
zhuwei168
Rank: 2
等级:注册会员
帖子:180
积分:1914
来自:东软信息学院
注册:2008-2-13
回复 5# josen0205 的帖子

顶顶你的代码
牛了~

做一个自由的人,飞到蔚蓝的天空里。
2008-5-25 09:46
zhuwei168
Rank: 2
等级:注册会员
帖子:180
积分:1914
来自:东软信息学院
注册:2008-2-13

time 函数还是不会怎么用
有人能教一下么?
或者推荐一下资料

做一个自由的人,飞到蔚蓝的天空里。
2008-5-25 09:48
yelusu
Rank: 1
等级:新手上路
帖子:11
积分:222
注册:2008-4-15

写的确实不错!
只不过不是汇编语言写的有点遗憾!
time函数我也没学过!
2008-5-27 17:20
共有 971 人关注过本帖
发新话题
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.060329 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved