博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C博客作业--指针
阅读量:4655 次
发布时间:2019-06-09

本文共 1864 字,大约阅读时间需要 6 分钟。

一、PTA实验作业

题目1:判断回文

1. 本题PTA提交列表

1232091-20171214224503435-839962731.png

2. 设计思路

}bool palindrome( char *s ){    定义变量i,j,l,flag=0;    计算数组s的长度存于l中;    for  i=0,j=l-1; to i

1232091-20171215165351183-17137283.png

3.代码截图

1232091-20171214225343670-1929987020.png

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

循环结束后的判断条件错误,少了一个等号

1232091-20171214225438185-1105240852.png

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

1. 本题PTA提交列表

1232091-20171215162927090-943167852.png

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.代码截图

1232091-20171215162823183-44574480.png

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

碰到的问题:移动数组后,没有i--,导致有连续两个非字母字符时,第二个非字母字符会被跳过

1232091-20171215163643449-476806217.png
解决办法:移动后i--

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

1. 本题PTA提交列表

1232091-20171215163917324-1902833176.png

2. 设计思路

{    定义 i=0,j=0,len;    计算数组t长度存于len中;    if len

3.代码截图

1232091-20171215165826980-1231272451.png

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

本题没有碰到问题

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

1232091-20171215165907965-22366888.png

三、阅读代码

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

10 11 12 1

9 16 13 2
8 15 14 3
7 6 5 4
代码截图:
1232091-20171215171233027-1035293761.png

优点:

  • 这段程序充分利用了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.求子串在母串中最后一次出现的地址

代码截图:

1232091-20171215193226496-116226474.png
本题最开始是用数组做,但是在输出时出现问题,最后百度。
优点:每次遍历是都让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

1232091-20171215182232293-1501397953.png

1232091-20171215182243199-2105618571.png

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

2

1232091-20171215182609090-956033472.png

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

3

1232091-20171215182713527-688539305.png

1232091-20171215182723574-194608593.png

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

转载于:https://www.cnblogs.com/xzjj/p/8039651.html

你可能感兴趣的文章
“请求/响应”模型
查看>>
【坑】重写一个vector
查看>>
【UOJ 55】志愿者选拔
查看>>
Python -- pandas
查看>>
jQuery 效果 - 淡入淡出
查看>>
目标文件格式
查看>>
瑞士 -- 德语 德国 -- 德语 卢森堡 -- 德语 奥地利 -- 德语 丹麦 -- 丹麦语 挪威 -- 挪威语 爱尔兰 -- 爱尔兰语 荷兰 -- 荷兰语 比利时 -- 荷兰语...
查看>>
背景颜色设置
查看>>
推荐一款帮助负载均衡/DNS轮询服务器组使用的文件同步工具
查看>>
常用的CSS命名规则
查看>>
约数个数定理&约数和定理
查看>>
Oracle EBS数据定义移植工具:FNDLOAD
查看>>
判素数
查看>>
extjs4.1:两个combobox的联动
查看>>
百度地图瓦片工具:定义坐标
查看>>
jmeter控制器--交替控制器
查看>>
hdu 5365 Run
查看>>
SVN 常用命令一览表
查看>>
css中可继承和不可继承属性
查看>>
980. Unique Paths III
查看>>