题很简单,主要是巩固知识
--------------------------------------------------------------------------------------/
本题要求实现函数,可以返回一个给定月份的英文名称。
函数接口定义:
char *getmonth( int n );
函数getmonth应返回存储了n对应的月份英文名称的字符串头指针。如果传入的参数n不是一个代表月份的数字,则返回空指针NULL。
裁判测试程序样例:
#include <stdio.h>
char *getmonth( int n );
int main()
{
int n;
char *s;
scanf("%d", &n);
s = getmonth(n);
if ( s==NULL ) printf("wrong input!\n");
else printf("%s\n", s);
return 0;
}
输入样例1:
5
输出样例1:
May
输入样例2:
15
输出样例2:
wrong input!
char *getmonth( int n )
{
char *a[13]={"","January","February","March","April","May"
,"June","July","August","September","October",
"November","December"};//第一种方法是定义一个指向字符型的指针数组,并初始化为月份
if(n>=1&&n<=12)
{
return a[n];
}
else
{
return NULL;
}
}
char *getmonth( int n )//第二种方法用switch函数
{
switch(n){
case 1:return "January";
case 2:return "February";
case 3:return "March";
case 4:return "April";
case 5:return "May";
case 6:return "June";
case 7:return "July";
case 8:return "August";
case 9:return "September";
case 10:return "October";
case 11:return "November";
case 12:return "December";
default:return NULL;
}
}
有一点疑问是不知道为什么pta上过不了这种方法,求大神解惑
char *getmonth( int n )
{
char a[99][10]={{"January\0"},{"February\0"},{"March"},{"April"},{"May"},{"June"},{"July"},{"August"},{"September"},{"October"},{"November"},{"December"}};//定义字符型二维数组
if(n>=1&&n<=12)
{
char *p=a[n-1];
return p;
}
else
{
return NULL;
}
}