从键盘输入一个月份值,用指针数组编程输出该月份的英文月名。 (1)编程提示 定义指针数组并初始化。注意,指针数组中的元素为各字符串的起始地址
时间: 2023-03-30 22:00:44 浏览: 105
可以回答这个问题。以下是代码示例:
#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("输入的月份值无效!\n");
return 1;
}
printf("%d月对应的英文月名是:%s\n", month, months[month-1]);
return ;
}
相关问题
从键盘任意输入一个整型表示的月份值,用指针数组编程输出该月份的英文表示,若输入的月份值不在1~12之间,则输出“illegal month”。
### 回答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;
}
C语言编程,从键盘输入10个整数,求出其中的最大数。要求用指针变量访问数组的元素。
可以按照以下步骤实现:
1. 定义一个大小为10的整型数组,并声明一个指向整型数组的指针变量。
2. 通过循环语句从键盘输入10个整数,将它们存储在数组中。
3. 使用指针变量遍历数组,找到最大值。
4. 输出最大值。
下面是示例代码实现:
```c
#include <stdio.h>
int main() {
int arr[10]; // 定义一个大小为10的整型数组
int *p = arr; // 声明一个指向整型数组的指针变量
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", p+i); // 通过指针变量遍历数组,从键盘输入10个整数
}
int max = *p; // 假设第一个元素为最大值
for (int i = 1; i < 10; i++) {
if (*(p+i) > max) { // 如果当前元素比最大值大,更新最大值
max = *(p+i);
}
}
printf("最大值为:%d\n", max); // 输出最大值
return 0;
}
```
阅读全文