C博客作业--指针

一、PTA实验作业

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

1. 本题PTA提交列表

1232019-20171216151535389-614191534.png

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

1232019-20171216154638702-87547916.png

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

本题无误

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

1. 本题PTA提交列表

1232019-20171216155017468-1815914326.png

2.设计思路

1232019-20171216205213155-1507635855.png

3.代码截图

1232019-20171216205405843-41865068.png

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

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

题目3:6-11 报数

1. 本题PTA提交列表

1232019-20171216210001921-458383906.png

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最后排名。

1232019-20171216212249593-358778168.png

三、阅读代码

1232019-20171216212913952-1167717306.png
首先它这题用了函数进行封装,如果让我来做这题,我应该不会用函数,因为我函数用的不够熟练,所以我觉得这是我
应该学习的地方,其次他用指针作为形参,指针作为形参的话,我查了一下资料,它运行的比较快,可见指针确实在很多方面
都有优越性

1232019-20171216220859171-305885530.png
我觉得他这一题的做法很好,他筛选相同数字时,碰到相同数字就跳出循环,如果让我来做,我可能会让数组循环左移

四、本周学习总结

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

1.结构类型可以把一些数据聚合成一个整体,结构可以使程序可读性更好
2.可以用typedef定义一个新类型
3.结构的嵌套是在结构里定义另一个结构类型的变量
4.结构变量的定义

  • 单独定义
  • 混合定义
  • 无类型定义
    5.结构类型变量的使用
    对于指针可以用 p->或(*p). 这里要注意运算符的优先级
    6.结构变量可以整体赋值,但在结构内部成员较多情况下,效率较低
    7.结构型变量一般不作为形参,一般用结构指针,因为这样更有效率

2.罗列本周一些错题

1232019-20171216222421514-1248911085.png这题错误是由于对结构不熟悉
1232019-20171216222513046-1391188079.png这题要注意运算符优先级

转载于:https://www.cnblogs.com/Airoure/p/8046848.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值