第三次作业

第一题:

         输出月份英文名

设计思路:

描述方法:

   第一步:定义一个指针数组并初始化
   第二步:因为数组的序号是从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

第四题:

posted @ 2018-04-22 13:36  2班-林昊  阅读(137)  评论(0编辑  收藏  举报