第一题:
输出月份英文名
设计思路:
描述方法:
第一步:定义一个指针数组并初始化
第二步:因为数组的序号是从0开始的,利用if循环如果找到了月份就返回n-1的那个月份
第三步:如果没有找到,则返回NULL
流程图:
实验代码:
char *getmonth( int n ){
char *month[12]={"January","February","March","April","May","June","July","August","September","October","November","December"};
if(n>=0 && n<=12){
return month[n-1];
}else{
return NULL;
}
}
遇到的问题:
错误信息:返回的时候没有n-1
改正方式:return month[n-1]
第二题:
查找星期
设计思路:
描述方法:
第一步:定义a,i和指针数组并进行初始化
第二步:定义二级指针将week的首地址存放在其中
第三步:比较输入的字符串与指针中的是否相同
第四步:如果相同返回其下角标并结束程序,如果不同则返回a的初始值
实验代码:
int getindex( char *s ){
int a=-1,i;
char *week[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
char **p=week;
for(i=0;i<7;i++){
if(strcmp(s,*(p+i))==0){
a=i;
break;
}
}
return a;
}
遇到的问题:
第三题:
计算最长的字符串长度
设计思路:
描述方法:
第一步:定义i,a和整形数组q并初始化
第二步:利用for循环和strlen函数将输入的字符串求出它们的长度并一一对应存入数组中
第三步:令a=q[0]然后逐一进行比较找出最长的字符串并返回他的长度
实验代码:
int max_len( char *s[], int n ){
int i;
int a;
int q[10]={0};
for(i=0;i<n;i++){
q[i]=strlen(*(s+i));
}
a=q[0];
for(i=0;i<n;i++){
if(a <q[i]){
a=q[i];
}
}
return a;
}
遇到的问题:
错误信息:将定义数组长度的时候将名字写成了long
改正方式:将long改成q
第四题: