也是老规矩,在写代码之间,我们仍需要先捋清楚实现的原理和对应的功能
首先,它是一个倒计时,他的格式为11:00,1:58,0:00,也就是说,在写printf的时候,我们需要将%d改成%02d,这样当一个数不足两位他便可以为数字前面添加0来填充,然后考虑倒计时需要使用Sleep()来实现,需要引用<windows.h>,时间格式分为两部分,所以需要声明两个变量,在清楚原理和方法之后,便可以进行编写
一,主体部分
#include<stdio.h>
#include<windows.h>//引用Windows库
int main()
{
int m, s;//声明两个变量,m为分,s为秒
s = 0;//秒数基础值为0
printf("请输入一个数\n");
scanf("%d", &m);//输入一个数字并储存在m中
if (m < 0)//如果不满足条件便返回提示
printf("请输入一个正整数");
else
printf("%d : %02d", m, s);//满足则从起始分开始输出
return 0;
}
主体部分只需要声明变量,完成输入||输出功能,值得注意的只有引入Windows.h,以便后续使用Sleep()和system("cls")
二,逻辑部分
while (m >= 0)//使用while循环,如果秒数大于或者等于0便进行循环
{
if (s == 0)//当秒数为0时便返回以下结果
{
m = m - 1;//分数 - 1
s = 59;//因为不存在1:60所以用59
}
else
s = s - 1;//秒速不为0时便执行秒数减一
Sleep(1000);//延迟一秒输出
system("cls");//输出时清除上一条语句
if (m < 0)//当分钟数小于0时
{
printf("时间到~");//输出到点提醒
Beep(1000, 500);//蜂鸣提醒
break;//停止循环
}
printf("%d : %02d", m, s);//输出倒计时
}
逻辑部分意思是,当秒数等于0时,分钟数-1,秒数变成59,当秒数不为0时,每秒钟秒数-1,当分钟数小于0时,便提示倒计时结束并发出蜂鸣提醒并停止循环,值得注意的是Sleep()的S一定要大写否则识别不了
三,完整代码
#include<stdio.h>
#include<windows.h>
int main()
{
int m, s;
s = 0;
printf("请输入一个数\n");
scanf("%d", &m);
if (m < 0)
printf("请输入一个正整数");
else
printf("%d : %02d", m, s);
while (m >= 0)
{
if (s == 0)
{
m = m - 1;
s = 59;
}
else
s = s - 1;
Sleep(1000);
system("cls");
if (m < 0)
{
printf("时间到~");
Beep(1000, 500);
break;
}
printf("%d : %02d", m, s);
}
return 0;
}
四,运行结果
——本篇结束