【蓝桥杯】试题 基础练习 报时助手(c++)
问题描述
给定当前的时间,请用英文的读法将它读出来。
时间用时h和分m表示,在英文的读法中,读一个时间的方法是:
如果m为0,则将时读出来,然后加上“o'clock”,如3:00读作“three o'clock”。
如果m不为0,则将时读出来,然后将分读出来,如5:30读作“five thirty”。
时和分的读法使用的是英文数字的读法,其中0~20读作:
0:zero, 1: one, 2:two, 3:three, 4:four, 5:five, 6:six, 7:seven, 8:eight, 9:nine, 10:ten, 11:eleven, 12:twelve, 13:thirteen, 14:fourteen, 15:fifteen, 16:sixteen, 17:seventeen, 18:eighteen, 19:nineteen, 20:twenty。
30读作thirty,40读作forty,50读作fifty。
对于大于20小于60的数字,首先读整十的数,然后再加上个位数。如31首先读30再加1的读法,读作“thirty one”。
按上面的规则21:54读作“twenty one fifty four”,9:07读作“nine seven”,0:15读作“zero fifteen”。
时间用时h和分m表示,在英文的读法中,读一个时间的方法是:
如果m为0,则将时读出来,然后加上“o'clock”,如3:00读作“three o'clock”。
如果m不为0,则将时读出来,然后将分读出来,如5:30读作“five thirty”。
时和分的读法使用的是英文数字的读法,其中0~20读作:
0:zero, 1: one, 2:two, 3:three, 4:four, 5:five, 6:six, 7:seven, 8:eight, 9:nine, 10:ten, 11:eleven, 12:twelve, 13:thirteen, 14:fourteen, 15:fifteen, 16:sixteen, 17:seventeen, 18:eighteen, 19:nineteen, 20:twenty。
30读作thirty,40读作forty,50读作fifty。
对于大于20小于60的数字,首先读整十的数,然后再加上个位数。如31首先读30再加1的读法,读作“thirty one”。
按上面的规则21:54读作“twenty one fifty four”,9:07读作“nine seven”,0:15读作“zero fifteen”。
输入格式
输入包含两个非负整数h和m,表示时间的时和分。非零的数字前没有前导0。h小于24,m小于60。
输出格式
输出时间时刻的英文。
样例输入
0 15
样例输出
zero fifteen
思路:先用把上面的数字写成函数,返回字符串,然后再把分钟,小时的每一位存起来,判断当前情况。
#include <iostream> #include <cstdio> using namespace std; string time(int a) { string s[] = {"zero","one","two","three","four","five","six","seven", "eight", "nine", "ten","eleven", "twelve","thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty","thirty","forty","fifty","o'clock"}; switch(a){ case 0: return s[0]; case 1: return s[1]; case 2: return s[2]; case 3: return s[3]; case 4: return s[4]; case 5: return s[5]; case 6: return s[6]; case 7: return s[7]; case 8: return s[8]; case 9: return s[9]; case 10: return s[10]; case 11: return s[11]; case 12: return s[12]; case 13: return s[13]; case 14: return s[14]; case 15: return s[15]; case 16: return s[16]; case 17: return s[17]; case 18: return s[18]; case 19: return s[19]; case 20: return s[20]; case 30: return s[21]; case 40: return s[22]; case 50: return s[23]; } } int main(int argc, char *argv[]) { int h,m; int h1,m1; int t,s; scanf("%d %d",&h,&m); t = h; s = m; if(h > 20 && h != 30 && h != 40 && h != 50){ h1 = h % 10;//存个位 h = h - h1;//存十位 } if(m > 20 && m != 30 && m != 40 && m != 50){ m1 = m % 10;//存个位 m = m - m1;//存十位 } if(m % 10 == 0 && m / 10 == 0)//当分钟为 00 时 { if(t <= 20){ cout << time(h) << " " << "o'clock"; } else{ cout << time(h) << " " << time(h1) << " " << "o'clock"; } } if(s > 20 && s != 30 && s != 40 && s != 50 && t > 20 && t != 30 && t != 40 && t!= 50 ){ cout << time(h) << " " << time(h1) << " " << time(m) << " " << time(m1); } else if(t <= 20 && s > 20 && s != 0){ cout << time(h) << " " << time(m) << " " << time(m1); } else if(t > 20 && s <= 20 && s != 0){ cout << time(h) << " " << time(h1) << " " << time(m); } else if(t != 0 && s != 0){ cout << time(h) << " " << time(m); } else if(t == 0 && s != 0){ cout << time(0) << " " << time(m) << " " << time(m1); } return 0; }
-------------------------------------------
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

浙公网安备 33010602011771号