代码改变世界

第3次作业

2018-04-22 21:53  金海宽  阅读(284)  评论(1编辑  收藏  举报

PTA

1. 输出月份英文名

1.实验代码

char *getmonth( int n ){
		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;
	}
}

2.设计思路
设置switch语句,输入数字,则输出对应的月份英文名称。
3.提交列表

4.本题调试过程碰到问题及解决办法

2.查找星期

int getindex( char *s ) {
  char day[7][MAXS]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}; 
  int i; 
  for(i=0;i<7;i++) {
    if(strcmp(*(day+i),s)==0) 
    return (i); 
  } 
  if(i==7) 
  return (-1);
}

3.计算最长的字符串长度

int max_len( char *s[], int n )
{
  int i,l=0;
  for(i=0;i<n;i++)
  {
    if(l<strlen(*(s+i)))
    {
      l=strlen(*(s+i));
    }
  }
  return l;
}

4.指定位置输出字符串

char *match( char *s, char ch1, char ch2 )
{
int i=0,j=0;  
char *p=NULL;    
for(i=0;*(s+i)!='\0';i++)
{  
    if(s[i]==ch1)
    {  
        p=&s[i];  
        for(j=i;*(s+j)!='\0';j++)
        {  
            if(s[j]!=ch2)
            {  
                printf("%c", s[j]);  
            }  
            if(s[j]==ch2)
            {  
                printf("%c\n", s[j]);  
                return p;  
            }     
        }  
        printf("\n");  
        return p;  
    }  
}
if(s[i] == '\0')
p = &s[i];
printf("\n");  
return p; 
}

学习总结和进度

1、总结两周里所学的知识点,回答下列问题?(用自己的话表达出你的理解,网上复制粘贴没有分数)(5分)

 (1)如何理解指针数组,它与指针、数组有何关系?为何可以用二级指针对指针数组进行操作?

 (2)将C高级第三次PTA作业(1)任何一个题目改为使用二级指针对指针数组进行操作。

 (3)用指针数组处理多个字符串有何优势?可以直接输入多个字符串给未初始化的指针数组吗?为什么?
          有点懵,不太会,在同学的帮助下做了作业。