已知每个月份的英文单词如下,要求创建一个指针数组,数组中的每个指针指向一个月份的英文字符串,要求根据输入的月份数字输出相应的英文单词
1月 January
2月 February
3月 March
4月 April
5月 May
6月 June
7月 July
8月 Aguest
9月 September
10月 October
11月 November
12月 December
输入:
第一行输入t表示t个测试实例
接着每行输入一个月份的数字
依次输入t行
已知每个月份的英文单词如下,要求创建一个指针数组,数组中的每个指针指向一个月份的英文字符串,要求根据输入的月份数字输出相应的英文单词
1月 January
2月 February
3月 March
4月 April
5月 May
6月 June
7月 July
8月 Aguest
9月 September
10月 October
11月 November
12月 December
输入:
第一行输入t表示t个测试实例
接着每行输入一个月份的数字
依次输入t行
阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
问题分析
根据问题描述,我们需要创建一个指针数组,数组中的每个指针指向一个月份的英文字符串。然后根据输入的月份数字输出相应的英文单词。
解决方案
我们可以使用一个结构体来存储月份的英文单词和对应的数字。然后使用一个函数来根据输入的月份数字输出相应的英文单词。
#include <stdio.h>
#include <string.h>
// 定义一个结构体来存储月份的英文单词和对应的数字
typedef struct {
int num;
char *month;
} Month;
// 定义一个函数来根据输入的月份数字输出相应的英文单词
void print_month(int num) {
Month months[] = {
{1, "January"},
{2, "February"},
{3, "March"},
// 添加其他月份的英文单词
};
// 判断输入的月份数字是否在数组中的范围内
int i;
for (i = 0; i < sizeof(months) / sizeof(months[0]); i++) {
if (months[i].num == num) {
printf("%s\n", months[i].month);
return;
}
}
// 如果输入的月份数字不在数组中的范围内,输出错误信息
printf("错误:月份不在范围内\n");
}
int main() {
int num;
printf("请输入月份数字:");
scanf("%d", &num);
print_month(num);
return 0;
}
注意
print_month 函数中,我们使用一个 for 循环来遍历 months 数组,判断输入的月份数字是否在数组中的范围内。main 函数中,我们使用 scanf 函数来读取用户输入的月份数字,然后调用 print_month 函数来输出相应的英文单词。