【2023年蓝桥杯训练--报时助手】

【2023年蓝桥杯训练--报时助手】_第1张图片

【思路】

1.对时钟进行打表(0~23小时)

2.①当分钟超过20的时候,对剩下的40分钟分段讨论,每段10分钟。

   ②定义一个临时变量t记录一下在该分段的十分钟内过了几分钟,特判一下,如果过了10分钟,也就是跳到了下一个分段,直接输出时钟示数和整十的分钟示数;如果t小于10分钟,那么直接输出对应的示数即可。

#include
#include 
using namespace std;

string st[24]={"zero","one","two","three","four","five","six","seven","eight","nine",
"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen","twenty",
"twenty one","twenty two","twenty three"};
int n,m;

int main()
{
	cin>>n>>m;
	if(m == 0)	printf("%s o'clock",st[n].c_str());
	else if(m > 0 && m <= 20)	printf("%s %s",st[n].c_str(),st[m].c_str());
	else if(m > 20 && m <= 30)
	{
		int t = m - 20 ;
		if(t == 10)	printf("%s thirty",st[n].c_str());
		else
		printf("%s twenty %s",st[n].c_str(),st[t].c_str());
	}
	else if(m > 30 && m <= 40)
	{
		int t = m - 30 ;
		if(t == 10)	printf("%s forty",st[n].c_str());
		else
		printf("%s thirty %s",st[n].c_str(),st[t].c_str());	
	}	
	else if(m > 40 && m <= 50)
	{
		int t = m - 40 ;
		if(t == 10)	printf("%s fifty",st[n].c_str());
		else
		printf("%s forty %s",st[n].c_str(),st[t].c_str());
	}
	else if(m > 50 && m < 60)
	{
		int t = m - 50 ;
		printf("%s fifty %s",st[n].c_str(),st[t].c_str());
	}
		
	
	return 0;	
}

【感悟】第一次写博客记录代码,有两三个月没碰了,之前准备的都忘完了,现在重新拾起来准备。今晚string都忘了怎么用了。string如果用printf输出的话是不能用

printf("%s o'clock",st[n]);

得换成

printf("%s o'clock",st[n].c_str());

【今天】今天我爹头疼了,我猜是羊了,所以能多写点代码就多写点吧,感觉我也快了。

希望借着坚持写博客之名,坚持写代码,同时记录生活,嗯,就这样。

你可能感兴趣的:(算法,蓝桥杯,c++,蓝桥杯,算法,c++)