6-1 输出月份英文名 (15 分)
本题要求实现函数,可以返回一个给定月份的英文名称。
函数接口定义:
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!
1.笨办法 (
char *getmonth( int n )
{
if(n<1||n>12)
return NULL;
else
{
if(n==1)
return "January";
else if(n==2)
return "February";
else if(n==3)
return "March";
else if(n==4)
return "April";
else if(n==5)
return "May";
else if(n==6)
return "June";
else if(n==7)
return "July";
else if(n==8)
return "August";
else if(n==9)
return "September";
else if(n==10)
return "October";
else if(n==11)
return "November";
else if(n==12)
return "December";
}
}
2.指针
char *getmonth( int n )
{
char *month[13] = {"January","February","March","April","May","June","July","August","September","October","November","December","wrong input!"};
char *s;
if(n>=1 && n<=12)
{
s = month[n-1];
}else
{
s = month[12];
}
return s;
}
(本题共15分,测试样例相同,截图比较麻烦,就只截总分了)