定义指针数组将下面的月份信息保存下来,输入n个数字,对每个数字,在表中查找对应的月份,若存在则输出该数字对应的月份,否则输出“no find”。 jan. 一月 feb. 二月 mar. 三月 apr. 四月 may.五月 jun. 六月 jul. 七月 aug. 八月 sep. 九月 oct. 十月 nov.十一月 dec. 十二月
时间: 2023-05-31 20:19:55 浏览: 142
### 回答1:
可以定义一个指针数组,每个元素指向一个字符串,表示对应的月份。例如:
char *months[] = {"jan.", "feb.", "mar.", "apr.", "may", "jun.", "jul.", "aug.", "sep.", "oct.", "nov.", "dec."};
然后,输入n个数字,对每个数字,在表中查找对应的月份。可以使用循环遍历指针数组,查找是否有元素的字符串与输入的数字相等。如果找到了,输出该数字对应的月份;否则输出“no find”。具体代码如下:
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
int num;
scanf("%d", &num);
int found = 0;
for (int j = 0; j < 12; j++) {
if (strcmp(months[j], num) == 0) {
printf("%s\n", months[j+1]);
found = 1;
break;
}
}
if (!found) {
printf("no find\n");
}
}
### 回答2:
本题需要定义一个指针数组来保存月份信息,具体实现方法如下:
1. 首先定义一个指针数组,每个数组元素都指向一个字符串,表示各个月份的汉字名称。
char* month[12] = {"jan.", "feb.", "mar.", "apr.", "may", "jun.", "jul.", "aug.", "sep.", "oct.", "nov.", "dec."};
2. 然后通过用户输入的数字,在数组中查找对应的月份,可以采用遍历的方式进行查找。
int n;
scanf("%d", &n);
int i;
for (i = 0; i < 12; i++) {
if (i+1 == n) { // 用户输入的数字对应的月份在数组中的下标为 i
printf("%s", month[i]);
break;
}
}
3. 如果找到对应的月份,则输出该月份的汉字名称,否则输出 “no find” 。
if (i == 12) { // 数组中没有找到对应的月份
printf("no find");
}
综上所述,定义指针数组可以方便地保存一系列相关的字符串,并通过指针快速访问所需的字符串。在本题中,定义指针数组可以方便地保存每个月份的汉字名称,方便根据用户输入的数字查找对应的月份名称。
### 回答3:
我们可以定义一个指针数组,并将月份信息依次赋给数组中的每个指针。例如:
char* months[] = {"jan.", "feb.", "mar.", "apr.", "may.", "jun.", "jul.", "aug.", "sep.", "oct.", "nov.", "dec."};
接下来,我们可以编写一个函数,用于输入数字并查询其对应的月份。函数的参数应该包括上述指针数组及其长度,以及要查询的数字。函数的实现过程为:
1. 遍历数组,如果发现数字对应的月份,则输出该月份并返回。
2. 如果数组已经遍历完仍然没有发现对应的月份,则输出“no find”。
函数的代码如下:
void findMonth(char* months[], int len, int num) {
for (int i = 0; i < len; i++) {
if (num == i + 1) {
cout << months[i] << endl;
return;
}
}
cout << "no find" << endl;
}
在主程序中,我们可以通过循环输入数字并调用上述函数,实现对多个数字的查询。例如:
int main() {
int n;
cin >> n;
while (n--) {
int num;
cin >> num;
findMonth(months, 12, num);
}
return 0;
}
上述代码可以实现循环读入数字并查询其对应的月份,直到输入结束。如果数字对应的月份存在,则输出该月份;否则输出“no find”。
阅读全文