搜索
查看: 5691|回复: 17
打印 上一主题 下一主题

编写2分钟倒计时。

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-6 09:38:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
本帖最后由 lzy9903 于 2012-11-7 21:56 编辑

求高手解答。编写2分钟倒计时。像2:00    1:59   1:58  。。。。。00:01

这样来表达要怎么写,谢谢了!!

最终结果:
#include <stdio.h>
int main()
{
int i,t;
t=2;
    system("color 0a");
    while(t>=0)
    {   
  i=59;
  while(i>=0)
        {
   if(t==2)i=0;
   if(i<=9)
    printf("%d:0%d",t,i);
   else
    printf("%d:%d",t,i);
   i=i-1;
   sleep(1000);
   system("cls");
  }
     t=t-1;
}
        sleep(5000);
        return 0;
}

最佳答案

查看完整内容

#include int main() { int i,j; for(i=2;i>=0;i--) { for (j=59;j>=0;j--) { if(i==2)j=0; if (j
沙发
发表于 2012-11-6 09:38:31 | 只看该作者
#include <stdio.h>
int main()
{        
     int i,j;        
     for(i=2;i>=0;i--)
     {
         for (j=59;j>=0;j--)
         {
             if(i==2)j=0;
             if (j<=9)printf("%d:0%d",i,j);
             else printf("%d:%d",i,j);
             sleep(980);
             system("cls");
          }
     }
sleep(10000);
        return 0;
}

点评

请问一下,如果把for 换成while要怎么写,谢谢  发表于 2012-11-6 19:50
板凳
 楼主| 发表于 2012-11-6 10:06:13 | 只看该作者
大神呢。怎么没人啊
地板
发表于 2012-11-6 10:34:50 | 只看该作者
//这儿我用vc++6.0给你写的
//下面写的只是一个大概效果展示,如果你要精确的时间表示,可以采用和系统时间计算差值
#include <IOSTREAM>
#include <windows.h>
using namespace std;

int main()
{
        for(int i=2;i>=0;i--)
        {
                for (int j=59;j>=0;j--)
                {
                        if(i==2)j=0;
                        if (j<=9)cout<<i<<":"<<"0"<<j<<endl;
                        else cout<<i<<":"<<j<<endl;
                        Sleep(980);    //因为还有运行和刷屏时间,所以我们规定980ms=1s
                        system("cls");
                }
        }
        return 0;
}
5#
 楼主| 发表于 2012-11-6 11:02:41 | 只看该作者
Teddy 发表于 2012-11-6 10:34
//这儿我用vc++6.0给你写的
//下面写的只是一个大概效果展示,如果你要精确的时间表示,可以采用和系统时 ...

谢谢,但是我是想知道用C语言要怎么写,因为《小学生都能读懂的C语言书》里面有一个这个题目,我做不出来,
6#
发表于 2012-11-6 12:05:38 | 只看该作者
#include <stdio.h>
int main()
{int i,t;
i=60;
t=2;
    system("color 0a");
    while(t>=0)
    {
    if(i<1)
    t=t-1,i=60;
    else
    i=i-1;
    system("cls");
    printf("%d:%d",t,i);
    sleep(1000);
}
        sleep(5000);
        return 0;
}
我是初学者,也是在看你看的那个教程,这个是我自己联想出来的,可以运行

点评

这个是从2分59秒开始的,而且2分钟到1分钟的时候,59到00之后,又重新走了几个数字,你仔细看一下。  发表于 2012-11-6 14:14
7#
发表于 2012-11-6 12:06:55 | 只看该作者
要学会举一反三,拒绝伸手 才能学的更快理解更透彻
8#
 楼主| 发表于 2012-11-6 13:36:01 | 只看该作者
a3230967 发表于 2012-11-6 12:06
要学会举一反三,拒绝伸手 才能学的更快理解更透彻

嗯,。想了很久,没想出来,才问的。
9#
发表于 2012-11-11 20:33:54 | 只看该作者
#include <stdio.h>
int main()
{        
int a,b,c;     
a=59;     
b=59;     
c=10;     
printf("2:00");     
sleep(1000);        
while(a>=0)        
{        
     system("cls");     
     printf("1:%d",a);        
     a=a-1;   
      sleep(1000);     
}     
while(b>=0)        
{        
system("cls");     
printf("0:%d",b);        
b=b-1;     
sleep(1000);     
}     
system("cls");     
printf("0:00");   
sleep(1000);        
sleep(5000);        
return 0;
}


对比发现我的方法好笨好笨.学习了.
10#
发表于 2012-11-13 17:27:37 | 只看该作者
a3230967 发表于 2012-11-6 12:05
#include
int main()
{int i,t;

如果把if(i<1)  t=t-1,i=i-60;改成这样if(i<1) t=0,i=0;就更好了  试试
11#
发表于 2012-11-17 11:20:54 | 只看该作者
找见了,多谢各位朋友了
12#
发表于 2012-11-20 18:53:14 | 只看该作者
本帖最后由 ldhmyf 于 2012-11-20 18:55 编辑

我也是初学者,非常感谢老师的书,很浅显易懂,让我这个完全没接触过一点语言的人也能看的懂。关于老师留下的2分钟倒计时的题目,我用while跟for两种循环各写了一段代码,希望大家多交流下心得。
while循环
#include <stdio.h>
int main()
{
    int a,b;
    a=2;
                while(a>=0)
        {
                        b=59;
                        while(b>=0)
                        {
                                system("cls");
                if(b<=9)
                                        printf("%d:0%d",a,b);
                else
                                        printf("%d:%d",a,b);
                                        b=b-1;
                                        sleep(200);
            }
                        a=a-1;
        }
        sleep(5000);
        return 0;
}


for循环

#include <stdio.h>
int main()
{
        int a,b;
        for(a=2;a>=0;a--)
        {
                for(b=59;b>=0;b--)
                        {
            system("cls");
            if(b<=9)
                                printf("%d:0%d",a,b);
            else
                                printf("%d:%d",a,b);
            sleep(100);
            }
    }
        sleep(5000);
        return 0;
}

另外现在就下了前三章的PDF书,第四章开始不知道哪里有下了。

13#
发表于 2012-11-21 14:19:48 | 只看该作者
274269989 发表于 2012-11-13 17:27
如果把if(i

完全不懂你说的意思  按照你这样改就死循环了。。。
14#
发表于 2012-11-21 14:25:57 | 只看该作者
a3230967 发表于 2012-11-6 12:05
#include
int main()
{int i,t;

#include <stdio.h>
int main()
{int i,t;
i=60;
t=2;
    system("color 0a");
    printf("3:00");
    sleep(1000);
    while(t>=0)
    {
    if(i<1)
    t=t-1,i=60;
    else
    i=i-1;
    system("cls");
    printf("%d:%d",t,i);
    sleep(1000);
}
        sleep(5000);
        return 0;
}


只要在循环之前添加(显示(3:00))等待一秒 这样的代码就可以从3:00开始倒计时了 至于你说的倒计时数字会往回走,理论上应该不会出现这种情况不过没耐心等一分钟去测试。。。反正真是这样我也解决不了了。。。我也不是很会
15#
发表于 2012-11-21 14:26:45 | 只看该作者
#include <stdio.h>
int main()
{
    printf("Microsoft Windows XP [版本 5.1.2600]\n");
    printf("(C) 版权所有 1985-2001 Microsoft Corp.\n");
    printf("C:\Documents and Settings\Administrator\ ");
    sleep(500);
    printf(" \n");
    printf("C:\Documents and Settings\Administrator>net user admin admin /add\n");
        sleep(500);
    printf("命令成功完成。\n");
    printf(" \n");
    printf("D:\Documents and Settings\Administrator>format D:\n");
    sleep(1000);
    printf("文件系统的类型是 NTFS。\n");
    printf("输入驱动器 D: 的当前圈标");
    sleep(1000);
    printf("  D: \n");
    printf("确定格式化吗?\n");
    printf(" \n");
    printf("是/否(Y/N )\n");
    sleep(1000);
    printf("Y \n");
    printf("快速格式化中......\n");
        sleep(2000);
    printf("命令成功完成. \n");
    printf(" \n");
    printf(" \n");
    printf("C:\Documents and Settings\Administrator>netstat -a \n");
    printf(" \n");
    printf("Active Connections \n");
        sleep(1000);
    printf(" Proto  Local Address          Foreign Address        State \n");
    printf(" TCP    MICROSOF-ADA8E2:135    127.0.0.1:135          LISTENING \n");
        printf("命令成功完成.\n");
    sleep(100000);
        return 0;
}



还有 这行代码也挺好玩的,复制到编辑器里试试吧~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表