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

2 分钟的倒计时例题解

[复制链接]
跳转到指定楼层
楼主
发表于 2013-7-21 21:15:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 嗨,强哥! 于 2013-7-21 21:18 编辑

/*  请尝试编写一个2 分钟的倒计时。形如:2:00 1:59 1:58 ……   */
/*  1:00 0:59 0:58 …… 0:02 0:01 0:00                                           */
/*                                                                                                    */
/*  程序清单如下:                                                                         */


#include <stdio.h>
#include <stdlib.h>
#include <windows.h>  //因为用到Sleep()函数,所以写上包含的头文件
int main()
{
    int f,m;                  //变量名字含义:f >> 分钟; m >> 秒数

    printf("02:00");     //先显示:02:00,说明倒计时开始
    Sleep(1000);       //倒计时时间显示1秒钟
    system("cls");      //清屏
   
    f=1;
    while(f>=0)         //外层循环显示分钟倒计时
    {
        m=60;
        while(m>0)     //内层循环显示秒数倒计时
        {
            m=m-1;
            if(m<10)      //倒计时秒数字进入个位数时补上十位数字0
                printf("0%d:0%d",f,m);
            else
                printf("0%d:%d",f,m);

            Sleep(1000);
            system("cls");
        }
                f=f-1;        //分钟倒计时
    }
                       
        system("pause");
        return 0;
}

沙发
 楼主| 发表于 2013-7-21 22:48:29 | 只看该作者
这样写运行完全没有问题。
我只是觉得应该有更加简洁的方法。
板凳
发表于 2013-7-21 22:56:01 | 只看该作者
嗨,强哥! 发表于 2013-7-21 22:48
这样写运行完全没有问题。
我只是觉得应该有更加简洁的方法。

。这个应该够简洁了
地板
 楼主| 发表于 2013-7-21 23:01:32 | 只看该作者
超神级 发表于 2013-7-21 22:56
。这个应该够简洁了

以前这道题我也没有做出来。
今天我女儿学到这儿,我花了20 分钟把它写出来,然后把流程说给她听,她也完全理解了。
最后她自己独立重新写了一遍。
5#
发表于 2013-7-21 23:05:14 | 只看该作者
{:soso_e126:}。。。。比我还厉害
6#
发表于 2013-8-12 20:17:57 | 只看该作者
应该够简洁了,高手啊!
7#
发表于 2013-9-23 00:42:14 | 只看该作者
让女儿都在学了啊 不错啊!
8#
发表于 2013-10-13 13:47:10 | 只看该作者
一直不理解这个 printf("0%d:0%d",f,m);
里面的“0%d:0%d"  是什么意思。有谁能讲解一下吗?
9#
发表于 2013-10-13 20:51:53 | 只看该作者
popopu 发表于 2013-10-13 13:47
一直不理解这个 printf("0%d:0%d",f,m);
里面的“0%d:0%d"  是什么意思。有谁能讲解一下吗?

这个没什么特殊的
0 : 0 都是字符串中得普通字符
%d %d是要用变量替换掉的整数
10#
发表于 2013-10-14 19:10:46 | 只看该作者
学习了,我正在苦思呢,0:0到底怎么处理,谢谢楼主
11#
发表于 2013-10-14 19:49:13 | 只看该作者
本帖最后由 start1980 于 2013-10-14 19:57 编辑

我照楼主的思路写的,
已经成功了,谢谢楼主
12#
发表于 2013-10-17 00:15:06 | 只看该作者
rosynirvana 发表于 2013-10-13 20:51
这个没什么特殊的
0 : 0 都是字符串中得普通字符
%d %d是要用变量替换掉的整数

谢谢。这个理解了。可是……
看到一个更简洁的。
int sec;
        sec = 120;
        while(sec >= 0)
        {
                system("cls");
                printf("%d:%02d",sec/60,sec%60);
                sec = sec - 1;
                Sleep(1000);
        }

但是这里“printf("%d:%02d",sec/60,sec%60);”的   “%02d" 我又不知道该做何理解了
13#
发表于 2013-10-17 00:38:35 | 只看该作者
popopu 发表于 2013-10-17 00:15
谢谢。这个理解了。可是……
看到一个更简洁的。
int sec;

2表示输出宽度
0表示空白用0填充
14#
发表于 2013-10-17 00:40:23 | 只看该作者
rosynirvana 发表于 2013-10-17 00:38
2表示输出宽度
0表示空白用0填充

谢谢,原来是这样。这个貌似书上没有说明
15#
发表于 2013-10-17 00:52:53 | 只看该作者
popopu 发表于 2013-10-17 00:40
谢谢,原来是这样。这个貌似书上没有说明

这种东西都要查专门的手册,教科书上不会细讲的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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