C语言—指针数组

发布于:2024-04-05 ⋅ 阅读:(106) ⋅ 点赞:(0)
从键盘任意输入一个整型表示的月份值,用指针数组编程输出该月份的英文表示,若输入的月份值不在1~12之间,则输出“Illegal month”。
**输入格式要求:"%d"  提示信息:"Input month number:"
**输出格式要求:"month %d is %s\n"
"Illegal month", "January", "February", "March", "April", "May", "June", "July", August", "September", "October", "November", "December"
程序运行示例1如下:
Input month number:5
month 5 is May
程序运行示例2如下:
Input month number:13
Illegal month
#include<Stdio.h>
#define N 12//月份数
#define MAX 15//字符串最大长度
int main(void)
{
    int n;
    char month[N][MAX] = {"January","February","March","April","May","June","July","August","September","October","November","December"};
    char *pmonth[N];//定义字符指针数组
    printf("请输入某个月份值:");
    scanf("%d",&n);
    if(n>=1 && n<=12)
    {
        pmonth[n-1] = month[n-1];//让pmonth[n-1]指向二维字符数组name的第i行
        puts(pmonth[n-1]);//输出第n-1个字符串到pmonth指向的内存
    }
    else
        printf("Illegal month");
}

#include<stdio.h>
int main()
{
	int n;
	const char* month[12] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" };
	printf("Input month number:");
	scanf_s("%d", &n);
	if (n < 1 || n>12)
		printf("Illegal month");
	else
		printf("month %d is %s\n", n, month[n - 1]);   //传递给%s的应该是一个地址,而不是*month[n-1]
}