码迷,mamicode.com
首页 > 其他好文 > 详细

C博客作业--指针

时间:2017-12-16 18:47:05      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:语言   列表   完成   保留   表情   实验   upper   蛇形填数   图片   

一、PTA实验作业

题目1:判断回文

1. 本题PTA提交列表

技术分享图片

2. 设计思路

}
bool palindrome( char *s ){
    定义变量i,j,l,flag=0;
    计算数组s的长度存于l中;
    for  i=0,j=l-1; to i<j{
        if s[i]是否不等于s[j]{
            flag=1;break; 
        } 
    }
    if flag==1  return flase;
    else return true
 } 

技术分享图片

3.代码截图

技术分享图片

4.本题调试过程碰到问题及PTA提交列表情况说明。

循环结束后的判断条件错误,少了一个等号
技术分享图片

题目2: 过滤字符串只保留串中的字母字符

1. 本题PTA提交列表

技术分享图片

2. 设计思路

{
    定义 i,j;
    for i=0 to ptr[i]
        判断是否为字母
            若不为字母,for j=i to ptr[j] 
                ptr[j]=ptr[j+1] //将后面的字母前移,覆盖掉非字母  
                end for
            i--; //令下一次循环再次从该处开始 
    end for 
    计算重组后的数组长度,并返回值 
 } 

3.代码截图

技术分享图片

4.本题调试过程碰到问题及PTA提交列表情况说明

碰到的问题:移动数组后,没有i--,导致有连续两个非字母字符时,第二个非字母字符会被跳过
技术分享图片
解决办法:移动后i--

题目3:使用函数实现字符串部分复制

1. 本题PTA提交列表

技术分享图片

2. 设计思路

{
    定义 i=0,j=0,len;
    计算数组t长度存于len中;
    if len<m  s[i]=0;
    else    
        for i=m-1 to t[i]
            s[j++]=t[i],重构数组 
        end for
    end else
    添加结束符s[j]=0; 
}

3.代码截图

技术分享图片

4.本题调试过程碰到问题及PTA提交列表情况说明

本题没有碰到问题

二、截图本周题目集的PTA最后排名

技术分享图片

三、阅读代码

1.蛇形填数。在nn方阵填入1,2···,nn,要求填成蛇形,例如,n=4时

10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
代码截图:
技术分享图片

优点:

  • 这段程序充分利用了C语言简洁的优势。赋值x=0和 y=n-1 后马上把它们作为数组的下标,同时tot 和 a[0][n-1]都赋值为1,这些都合并完成。这样就用一条语句完成了多件事情。
  • 4条while 语句有些难懂,以第一句为例,原则是:先判断,再移动,而不是走一步发现越界后退回来。这样则需要“预判”是否越界,越界只需判断 x+1<n ,因为y的值没有修改;下一个格子是(x+1,y),因此只需简写为“!a[x+1][y]”。

2.求子串在母串中最后一次出现的地址

代码截图:
技术分享图片
本题最开始是用数组做,但是在输出时出现问题,最后百度。
优点:每次遍历是都让p,q重新指向;判断母串中是否有子串相同时也简便了许多,最后找到子串时直接用a指向此时s的地址,这样返还a就行,不用像数组一样要重构,体现了指针的灵活性。

四、本周学习总结

1.自己总结本周学习内容。

1.本周我学会了strstr (char s,char t),strchr(char s,char e),strcmp(char s,char *t),tolower,toupper,这些库函数。strstr的功能是在字符串s中查找字符串t首次出现的地址,可用了在母串中寻找子串;strchr在字符串s中查找字符e首次出现的地址;strcmp的功能是比较两个字符串的大小,用于字符串排序;tolower和toupper用于大小写字母的转化。

2.结构体的定义以及结构变量的使用

struct 结构名{
    类型名 结构成员名1;
    类型名 结构成员名2;
    ……
    类型名 结构成员名n; 
}结构变量1,结构变量2,……;

结构变量使用时要用结构成员操作符‘.’,如s1.name

3.结构指针,即指向结构类型变量的指针
例如:

    struct student s1 = {101,"zhang"},*p;
    p=&s1;

4.指向运算符-> ,用于访问指针指向的结构成员
例如:当指针p指向s1时

p->num=101

上面语句等价于

s1.num=101;
(*p).num=101;

2.罗列本周一些错题。

1

技术分享图片
技术分享图片

本题有两个错误。第一,大小写字母差值为32;第二,若用(p-1)-32会将不是字母的字符也转化,所以应该按照题目给的toupper((p-1))

2

技术分享图片

本题错误是没有注意到函数的返还值。

3

技术分享图片
技术分享图片

本题做的时候没有考虑到删除x后,输出时数组的长度改变了,所以最后一个空没有填出来

C博客作业--指针

标签:语言   列表   完成   保留   表情   实验   upper   蛇形填数   图片   

原文地址:http://www.cnblogs.com/xzjj/p/8039651.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!