无理617 2021-11-30 22:05 采纳率: 42.9%
浏览 58
已结题

c语言编写2分钟倒计时2:00,1:59……0:00遇到问题,

img


下面是具体代码:
#include <stdio.h>
#include <Windows.h>
int main()
{
system("color a");
printf("2分钟倒计时开始!\n");
int a,b,n;
n = 120;
a = 2;
b = 59;
while (n>=1)
{
if (a==2)
{
printf("%d:00\n",a);
Sleep(1000);
}//完成对时间2:00的输出
a = 1;
if (b>=10)
{
printf("%d:%d\n", a, b);
b = b - 1;
Sleep(1000);
}//完成1:101:59的输出
if (b<=9&&b>=0)
{
printf("%d:0%d\n", a, b);
b = b - 1;
Sleep(1000);
}//完成1:00
1:09的输出
if (b<0&&b>=-50)
{
a = 0;
printf("%d:%d\n", a, b+60);
b = b - 1;
Sleep(1000);
}//完成0:100:59的输出
if (b < -50)
{
a = 0;
printf("%d:0%d\n", a, b + 60);
b = b - 1;
Sleep(1000);
}//完成0:00
0:09的输出
n = n - 1;

}
printf("%d\n", n);
printf("倒计时结束!");
return 0;

}//问题:输出结果中好像循环了124次。

  • 写回答

1条回答 默认 最新

  • 关注

    因为你的逻辑有点混乱,a==2的 时候sleep了,n也需要--,a=1需要放在if(a==2)里面,
    if 之间应该用 if else if,而不是全都是if语句,否则当b==10成立的时候,执行if(b>=10)以后,b-=1,b=9,下面的if(b>0&&b<10)成立,这里又会sleep,所以,你的输出是错的。

    代码修改如下:

    #include <stdio.h>
    #include <Windows.h>
    int main()
    {
        system("color a");
        printf("2分钟倒计时开始!\n");
        int a,b,n;
        n = 120;
        a = 2;
        b = 59;
        while (n>=1)
        {
            if (a==2)
            {
                printf("%d:00\n",a);
                Sleep(1000);
                a = 1; //移动到if里面
                n--; //这里n--
            }//完成对时间2:00的输出
            
            if (b>=10)
            {
                printf("%d:%d\n", a, b);
                b = b - 1;
                Sleep(1000);
            }//完成1:101:59的输出
            else if (b<=9&&b>=0)
            {
                printf("%d:0%d\n", a, b);
                b = b - 1;
                Sleep(1000);
            }//完成1:001:09的输出
            else if (b<0&&b>=-50)
            {
                a = 0;
                printf("%d:%d\n", a, b+60);
                b = b - 1;
                Sleep(1000);
            }//完成0:100:59的输出
            else if (b < -50)
            {
                a = 0;
                printf("%d:0%d\n", a, b + 60);
                b = b - 1;
                Sleep(1000);
            }//完成0:000:09的输出
            n = n - 1;
        }
        printf("%d\n", n);
        printf("倒计时结束!");
        return 0;
    }//问题:输出结果中好像循环了124次。
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月9日
  • 已采纳回答 12月1日
  • 创建了问题 11月30日

悬赏问题

  • ¥15 求指导ADS低噪放设计
  • ¥15 CARSIM前车变道设置
  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存