题目描述
已知每个月份的英文单词如下,要求创建一个指针数组,数组中的每个指针指向一个月份的英文字符串,要求根据输入的月份数字输出相应的英文单词
1月 January
2月 February
3月 March
4月 April
5月 May
6月 June
7月 July
8月 August
9月 September
10月 October
11月 November
12月 December
输入
第一行输入t表示t个测试实例
接着每行输入一个月份的数字
依次输入t行
输出
每行输出相应的月份的字符串,若没有这个月份的单词,输出error
输入样例
3
5
11
15
输出样例
May
November
error
题解
- 首先定义一个包含12个指向字符串的指针数组
pmonth
,每个指针指向一个字符串,这些字符串表示月份的名称。const表示这些指针所指向的内容应该被视为常量,不可以被修改,防止修改字符串的内容。如果要输出第一个月的名称,可以使用pmonth[0]
- 然后使用一个for循环,控制询问次数,将输入的数字存储到一个整型变量中,如果这个数字不是月份的数字,则输出
error
,然后直接进行到下一个循环语句,否则输出指到这个数字所代表的指针的值
代码实现
#include <iostream>
using namespace std;
int main()
{
int t, mon, i;
const char *pmonth[12] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" };
cin >> t;
for (i = 1; i <= t; i++)
{
cin >> mon;
if (mon < 1 || mon > 12)
{
cout << "error" << endl;
continue;
}
cout << pmonth[mon - 1] << endl;
}
return 0;
}