可作为map的简单练习
通过读取mp[m]可直接读取对应的字符串,比字符串数组好理解写。
#include<iostream>
#include<algorithm>
#include<string>
#include<map>
using namespace std;
int h,m;
string s[]={"zero", "one", "two", "three", "four", "five",
"six", "seven", "eight", "nine", "ten",
"eleven", "twelve", "thirteen", "fourteen", "fifteen",
"sixteen", "seventeen", "eighteen", "nineteen", "twenty"};
map<int,string> mp; //map的声明
int main()
{
for(int i=0;i<=20;i++)//存至map中
{
mp[i]=s[i];
}
mp[30]="thirty"; //单独加入map
mp[40]="forty";
mp[50]="fifty";
cin>>h>>m;
if(h<=20) //读时
cout<<mp[h];
else
cout<<mp[20]<<" "<<mp[h%10];
if(m==0) //注意整时+o'clock
cout<<" o'clock";
else if(m<=20)
cout<<" "<<mp[m];
else //大于20的读法
{
cout<<" "<<mp[m/10*10];
if(m%10!=0) //分为10的倍数则不需要读个位数
cout<<" "<<mp[m%10];
}
return 0;
}