从键盘任意输入一个整型表示的月份值,用指针数组编程输出该月份的英文表示,若输入的月份值不在1~12之间,则输出“illegal month”。
时间: 2023-05-31 19:17:49 浏览: 241
C语言输入10个整数,统计其中正数、负数和零的个数,并在屏幕上输出
5星 · 资源好评率100%
### 回答1:
可以定义一个指针数组,数组中存放12个字符串,分别表示1月到12月的英文名称。然后根据输入的月份值,输出对应的字符串即可。
具体的代码实现如下:
```c
#include <stdio.h>
int main() {
char *months[] = {"January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"};
int month;
printf("请输入一个月份值(1-12):");
scanf("%d", &month);
if (month >= 1 && month <= 12) {
printf("该月份的英文表示为:%s\n", months[month-1]);
} else {
printf("illegal month\n");
}
return ;
}
```
运行结果:
```
请输入一个月份值(1-12):3
该月份的英文表示为:March
```
### 回答2:
题目要求输入一个整型表示月份值,然后通过指针数组输出该月份的英文表示,如果输入的月份不在1-12之间,则输出“illegal month”。这是一个简单的指针应用题,需要对指针数组的使用有一定的掌握。
首先,我们需要定义一个指针数组,用来存储月份的英文表示。数组的大小为13,因为月份是从1开始的,我们可以将数组下标为0的位置空出来,不使用。数组中每个元素都是一个指向字符数组的指针,即指向月份的英文表示。
```c
char *monthName[] = {"", "January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"};
```
接下来,我们需要从键盘输入一个整型数,表示月份值。为了方便,我们可以定义一个整型变量month,并通过scanf函数从键盘读入month的值。
```c
int month;
scanf("%d", &month);
```
然后,我们需要判断输入的月份值是否合法,即是否在1-12之间。如果不在1-12之间,我们需要输出“illegal month”。这可以通过if语句来实现。
```c
if (month < 1 || month > 12) {
printf("illegal month\n");
return 0;
}
```
最后,我们需要输出该月份的英文表示。由于monthName是一个指针数组,我们可以通过month作为下标来访问对应的英文表示,然后通过printf函数输出即可。
```c
printf("%s\n", monthName[month]);
```
完整代码如下:
```c
#include <stdio.h>
int main() {
char *monthName[] = {"", "January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"};
int month;
scanf("%d", &month);
if (month < 1 || month > 12) {
printf("illegal month\n");
return 0;
}
printf("%s\n", monthName[month]);
return 0;
}
```
通过这个代码示例,我们可以看到指针数组的使用方法,以及如何通过指针数组来输出月份的英文表示。
### 回答3:
本题要求根据输入的数字月份输出相应的英文表示。我们可以通过建立一个字符串数组,来存储英文的月份名称,再根据输入的数字月份值作为数组的下标,输出所对应的名称。具体实现可以使用指针数组,使得代码更为简洁和高效。以下是具体的步骤:
1. 建立一个字符串数组,用来存储12个月份的英文名称。例如:
char* months[] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
2. 定义一个整型变量month,并使用scanf函数从键盘输入月份值。
int month;
scanf("%d", &month);
3. 判断输入的月份是否在1~12之间,如果不在则输出“illegal month”,并结束程序;否则继续执行。
if(month < 1 || month > 12){
printf("illegal month\n");
return 0;
}
4. 使用指针数组输出所对应的英文名称。例如,如果输入的数字月份为3,则输出“March”。
printf("%s\n", months[month-1]);
注意,由于数组的下标是从0开始的,而输入的数字月份是从1开始的,因此需要将输入的月份值减去1才能正确获取对应的数组元素。
完整代码如下:
#include <stdio.h>
int main()
{
char* months[] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
int month;
scanf("%d", &month);
if(month < 1 || month > 12){
printf("illegal month\n");
return 0;
}
printf("%s\n", months[month-1]);
return 0;
}
阅读全文