问题标题: 酷町堂:倒计时

2
1
已解决
李泽远
李泽远
高级天翼
高级天翼

看你们的游戏帖都没被关,那我总可以发一个程序吧?

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
bool f;
void showclock(int h,int m,int s)
{
    if(h<10)
        cout<<0;
    cout<<h<<":";
    if(m<10)
        cout<<0;
    cout<<m<<":";
    if(s<10)
        cout<<0;
    cout<<s;
}
void myclock(int h,int m,int s)
{
    while(h>=0||m>=0||s>=0)
    {
        showclock(h,m,s);
        if(s==0)
        {
            s=60;
            m--;
        }
        if(m<0)
        {
            m=59;
            h--;
        }
        s--;
        Sleep(1000);
        system("cls");
        if(s<=0&&m<=0&&h<=0)
        {
            cout<<"时间到!"; 
            for(int i=0;i<10;i++)
                Beep(1000,200);
        }
    }
}
int main()
{
    cout<<"请输入倒计时时间:";
    int x,y,z;//在用的时候要输入时分秒!!!
    cin>>x>>y>>z;
    myclock(x,y,z);
    return 0;
}

在用的时候要输入时分秒!!!

PS:纯属分享,我经常用它来倒计时写作业。

李泽远在2020-04-29 20:59:46追加了内容

上次那个有缺陷,还是用这个吧:

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
char ch;

void change(int &h,int &m,int &s)
{
	while(1)
	{
		if(h>=60)
		{
			cout<<"时间过长啦!请重新输入:";
			cin>>h>>m>>s;
		}
		else if(s>=60)
		{
			m+=s/60;
			s-=(s/60)*60;
		}
		else if(m>=60)
		{
			h+=m/60;
			m-=(m/60)*60;
		}
		else
			break;
	}
}

void showclock(int h,int m,int s)
{
	if(h<10)
		cout<<0;
	cout<<h<<":";
	if(m<10)
		cout<<0;
	cout<<m<<":";
	if(s<10)
		cout<<0;
	cout<<s;
}

void myclock()
{
	int h,m,s;
	cout<<"请输入倒计时时间(格式:时 分 秒):";
	cin>>h>>m>>s;
	change(h,m,s);
	while(h>=0||m>=0||s>=0)
	{
		showclock(h,m,s);
		if(s==0)
		{
			s=60;
			m--;
		}
		if(m<0)
		{
			m=59;
			h--;
		}
		s--;
		Sleep(1000);
		system("cls");
		if(s<=0&&m<=0&&h<=0)
		{
			cout<<"时间到!"; 
			for(int i=0;i<10;i++)
				Beep(1000,200);
			return ;
		}
	}
}

void outmenu()
{
	int flag;
	while(flag)
	{
		system("cls");
		cout<<"时间\n";
		cout<<"1.倒计时\n";
		cout<<"2.退出\n";
		cin>>flag;
		switch(flag)
		{
			case 1: myclock();
					break;
			case 2:	exit(0);
		}
		cout<<endl;
	}
	 
}

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

 

李泽远在2020-04-29 21:16:50追加了内容

送豆了!

李泽远在2020-04-29 21:18:15追加了内容

悬赏73个酷町豆,这样我就2020个豆了。

李泽远在2020-04-30 17:45:02追加了内容

我用它来计时1个小时30分钟的语文考试都行!!!

李泽远在2020-05-01 20:37:48追加了内容

首先感谢各位给我提供建议同学!

也感谢各位给我(调整代码显示)的方法的同学,来看下我改了之后的怎么样↓

代码.png


0
已采纳
李致远
李致远
高级光能
高级光能

1 后排zizi(┭┮﹏┭┮)

 

2 膜拜dl

 

你的c++可以在工具--编译器选项--语法里面调试

 

4 没豆了,送点豆吧OvO(请忽视。。。)

 

5 建议

在倒计时结束时,可以定义一个FLAG,把beep的循环改为WHILE,在时间到时显示"1 我知道了 2 在来一次",如若输入的FLAG==1,则打破WHILE循环。

1
1
赵朗
赵朗
高级光能
高级光能

高手  很棒(๑•̀ㅂ•́)و✧

1
1
1
1
0
董宇昊
董宇昊
初级启示者
初级启示者

我将你的代码改了一下

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
bool f;
void showclock(int h,int m,int s)
{
    if(h<10)
        cout<<0;
    cout<<h<<":";
    if(m<10)
        cout<<0;
    cout<<m<<":";
    if(s<10)
        cout<<0;
    cout<<s;
}
void myclock(int h,int m,int s)
{
    while(h>=0||m>=0||s>=0)
    {
        showclock(h,m,s);
        if(s==0)
        {
            s=60;
            m--;
        }
        if(m<0)
        {
            m=59;
            h--;
        }
        s--;
        Sleep(1000);
        system("cls");
        if(s<=0&&m<=0&&h<=0)
        {
            MessageBox(NULL,"              时间到","计时器",MB_OK);
            for(int i=0;i<10;i++)
                Beep(1000,200);
        }
    }
}
int main()
{
    cout<<"请输入倒计时时间:";
    int x,y,z;//在用的时候要输入时分秒!!!
    cin>>x>>y>>z;
    Sleep(1000);
    system("cls");
    myclock(x,y,z);
    return 0;
}

——————————————————————————————————————————————————————————————————-

佩服我吧~

0
潘晨皓
潘晨皓
高级天翼
高级天翼

BUG!!!!

一编译完就成了这样!!!

楼主,你是怎么搞的?

潘晨皓在2020-04-30 07:06:15追加了内容

下面的

0
0
黄子扬
黄子扬
初级天翼
初级天翼

很弱,不用

一个半小时语文考试

xxs鉴定完毕

0
刘欣然
刘欣然
高级光能
高级光能

刘欣然在2020-05-01 15:51:46追加了内容

刘欣然在2020-05-01 15:53:02追加了内容

真香

刘欣然在2020-05-01 16:02:52追加了内容

希望我们不要打破这个吉利的数字

0
0
0
陈喆鹏
陈喆鹏
资深光能
资深光能

每个人的电脑时间不一样

0
丁博扬
丁博扬
中级天翼
中级天翼

牛皮,我还没学到倒计时,以前只是老师拓展的

我要回答