倒计时3分钟

【1】60秒倒计时(while()循环实现)

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

int main()
{
	int a;
	a = 60;

	system("color Oa");

	while (a >= 0)
	{
		system("cls");
		printf("%d", a);
		Sleep(1000);
		a = a - 1;
	}
	return 0;
}

【2】当日倒计时 

#include<stdio.h>
#include<time.h>
#include<windows.h>

int countDown()
{
	int hour, min, sec;
	int hour_h, min_m, sec_s;//accept time
	int i, j, k;

	time_t nowtime;		//time_t equals long
	struct tm* timeinfo;//time structure pointer variable
	time(&nowtime);		//get time
	timeinfo = localtime(&nowtime);//turn into local time
	hour = timeinfo->tm_hour;//the hour variable in tm  struct
	min = timeinfo->tm_min;
	sec = timeinfo->tm_sec;

	hour_h = 23 - hour;
	min_m = 59 - min;
	sec_s = 59 - sec;

	printf("%02d:%02d:%02d", hour_h, min_m, sec_s);   //今日剩余时分秒
	printf("\nCount Down :\n");
	for (i = hour_h; i >= 0; i--)
	{
		for (j = min_m; j >= 0; j--)
		{
			for (k = sec_s; k >= 0; k--)
			{
				printf("\r%02d:%02d:%02d", i, j, k);   // 回车\r     // 换行\n
				Sleep(1000);
			}
			sec_s = 59;
		}
		min_m = 59;
	}
	return 0;
}

int main()
{
	countDown();
	return 0;
}

//'\r' 回车,回到当前行的行首,而不会换到下一行,如果接着输出的话,本行以前的内容会被逐一覆盖;
//'\n' 换行,换到当前位置的下一行,而不会回到行首;

 *timeinfo 中的内容如下: 年月日、时分秒、星期、天数。

        实际是2022年10月7日,这里显示2122年9月7日???

【3】倒计时3分钟(嵌套for()循环实现)

        时分秒的数值可由scanf()从键盘获取,自由DIY倒计时长。

#include<stdio.h>
#include<time.h>
#include<windows.h>

int countDown()
{
	int hour_h, min_m, sec_s;//accept time
	int i, j, k;

	hour_h = 0;
	min_m = 3;
	sec_s = 0;

	printf("%02d:%02d:%02d", hour_h, min_m, sec_s);   //倒计时:时分秒
	printf("\nCount Down :\n");
	for (i = hour_h; i >= 0; i--)
	{
		for (j = min_m; j >= 0; j--)
		{
			for (k = sec_s; k >= 0; k--)
			{
				printf("\r%02d:%02d:%02d", i, j, k);   // 回车\r     // 换行\n
				Sleep(1000);
			}
			sec_s = 59;
		}
		min_m = 59;
	}
	return 0;
}

int main()
{
	countDown();
	return 0;
}
//'\r' 回车,回到当前行的行首,而不会换到下一行,如果接着输出的话,本行以前的内容会被逐一覆盖;
//'\n' 换行,换到当前位置的下一行,而不会回到行首;

猜你喜欢

转载自blog.csdn.net/luyibing2017/article/details/127195304