C博客作业--指针

一、PTA实验作业

题目1:6-9 求子串在母串中最后一次出现的地址

1. 本题PTA提交列表

2. 设计思路

定义i,j存放循环变量,n存放子串长度
定义指针p存放子串最后一次出现的地址
for i=0 to t[i]=0
    令n=i
    for i=0 to s[i]=0
        for j=0 to t[j]=s[i]
            如果t[j+1]=0,p=s[i-n+1]的地址,即子串第一个字符在母串地址
            并flag=1表示程序进过这个循环
如果flag=0,p=NULL
返回p

3.代码截图

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

本题无误

题目2:6-8 使用函数实现字符串部分复制

1. 本题PTA提交列表

2.设计思路

3.代码截图

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

  • 部分错误:在想问题时,对数组下标的把握错误,导致失误

题目3:6-11 报数

1. 本题PTA提交列表

2. 设计思路

定义变量i,k存放总人数,l存放排位数
定义数组a[100]
for i=1 to i>=n a[i]=i(让数组每个元素等于他的下标) end
for i=1 to n=0
    若i>k,i=i-k(将i转化为小于总人数的数字)
    若a[i-1]=-1 l--,跳过下面步骤
    若l是m的倍数,out[i-1]=j;j++;a[i-1]=-1(将该数组标记为已退出);n--;
end
···

###4.本题调试过程碰到问题及PTA提交列表情况说明。
 - 段错误:数组不够大
 - 多种错误:本来循环条件应该是n=0时跳出循环,但我弄错了,导致程序死循环而运行超时,数组不够大而段错误

#二、截图本周题目集的PTA最后排名。
![](http://images2017.cnblogs.com/blog/1232019/201712/1232019-20171216212249593-358778168.png)

#三、阅读代码
![](http://images2017.cnblogs.com/blog/1232019/201712/1232019-20171216212913952-1167717306.png)
首先它这题用了函数进行封装,如果让我来做这题,我应该不会用函数,因为我函数用的不够熟练,所以我觉得这是我
应该学习的地方,其次他用指针作为形参,指针作为形参的话,我查了一下资料,它运行的比较快,可见指针确实在很多方面
都有优越性

![](http://images2017.cnblogs.com/blog/1232019/201712/1232019-20171216220859171-305885530.png)
我觉得他这一题的做法很好,他筛选相同数字时,碰到相同数字就跳出循环,如果让我来做,我可能会让数组循环左移

#四、本周学习总结
##1.自己总结本周学习内容
1.结构类型可以把一些数据聚合成一个整体,结构可以使程序可读性更好
2.可以用typedef定义一个新类型
3.结构的嵌套是在结构里定义另一个结构类型的变量
4.结构变量的定义
 - 单独定义
 - 混合定义
 - 无类型定义
5.结构类型变量的使用
对于指针可以用 p->或(*p).  这里要注意运算符的优先级
6.结构变量可以整体赋值,但在结构内部成员较多情况下,效率较低
7.结构型变量一般不作为形参,一般用结构指针,因为这样更有效率

##2.罗列本周一些错题
![](http://images2017.cnblogs.com/blog/1232019/201712/1232019-20171216222421514-1248911085.png)这题错误是由于对结构不熟悉
![](http://images2017.cnblogs.com/blog/1232019/201712/1232019-20171216222513046-1391188079.png)这题要注意运算符优先级
原文地址:https://www.cnblogs.com/Airoure/p/8046848.html