啊哈磊_编程从这里起步

标题: 编写2分钟倒计时。 [打印本页]

作者: lzy9903    时间: 2012-11-6 09:38
标题: 编写2分钟倒计时。
本帖最后由 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;
}

作者: Teddy    时间: 2012-11-6 09:38
#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;
}
作者: lzy9903    时间: 2012-11-6 10:06
大神呢。怎么没人啊
作者: Teddy    时间: 2012-11-6 10:34
//这儿我用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;
}

作者: lzy9903    时间: 2012-11-6 11:02
Teddy 发表于 2012-11-6 10:34
//这儿我用vc++6.0给你写的
//下面写的只是一个大概效果展示,如果你要精确的时间表示,可以采用和系统时 ...

谢谢,但是我是想知道用C语言要怎么写,因为《小学生都能读懂的C语言书》里面有一个这个题目,我做不出来,
作者: a3230967    时间: 2012-11-6 12:05
#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;
}
我是初学者,也是在看你看的那个教程,这个是我自己联想出来的,可以运行
作者: a3230967    时间: 2012-11-6 12:06
要学会举一反三,拒绝伸手 才能学的更快理解更透彻
作者: lzy9903    时间: 2012-11-6 13:36
a3230967 发表于 2012-11-6 12:06
要学会举一反三,拒绝伸手 才能学的更快理解更透彻

嗯,。想了很久,没想出来,才问的。
作者: bensile    时间: 2012-11-11 20:33
#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;
}


对比发现我的方法好笨好笨.学习了.
作者: 274269989    时间: 2012-11-13 17:27
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;就更好了  试试
作者: ly55    时间: 2012-11-17 11:20
找见了,多谢各位朋友了
作者: ldhmyf    时间: 2012-11-20 18:53
本帖最后由 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书,第四章开始不知道哪里有下了。


作者: a3230967    时间: 2012-11-21 14:19
274269989 发表于 2012-11-13 17:27
如果把if(i

完全不懂你说的意思  按照你这样改就死循环了。。。
作者: a3230967    时间: 2012-11-21 14:25
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开始倒计时了 至于你说的倒计时数字会往回走,理论上应该不会出现这种情况不过没耐心等一分钟去测试。。。反正真是这样我也解决不了了。。。我也不是很会
作者: a3230967    时间: 2012-11-21 14:26
#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;
}



还有 这行代码也挺好玩的,复制到编辑器里试试吧~
作者: 我要学C语言    时间: 2012-12-1 19:33
我现在还看不懂!
作者: zuiyouji1    时间: 2013-2-20 14:17
#include <stdio.h>
int main()
{
        int a=120;
    while(a>=0)
    {
                printf("%d:%02d\n",a/60,a%60);
        system("cls");
        a=a-1;
     }
        sleep(5000);
        return 0;
}
这个是今天在别处学习到的,当时看到就碉堡了,这个思路我自己想半天都没想出来
作者: lingxiaopiaoluo    时间: 2013-2-27 16:11
首先非常感谢啊哈磊编了这套小学生坐在马桶上都能读懂的C语言,确实是非常通俗易懂,我是0基础,自学两天就看了一半,能编写简单程序,后面例题也能独立完成了。不过越往后就稍微有些难,今天就被两道题难住一整天以至于心情不好一共才看了几页,刚才看了论坛里各种关于这道题的答案,基本上没有我想要的完全正确的并且能看懂的,但是也给了我灵感,于是自己研究出来答案。现在奉上
#include <stdio.h>
#include <stdlib.h>
int main()
{
        int a,b;
    a=1;
    printf("2:00");
    sleep(500);
    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);
                        sleep(500);
            b=b-1;
            
        }
        
        a=a-1;
    }
    sleep(5000);
    return 0;
}




欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2