指针

一.PTA实验作业

6-2 移动字母

1.PTA提交列表

 

 

2.设计思路

主函数定义字符串长度,输入字符串s,调用shift函数,在shift子函数中,定义i,a1,a2,a3,t等变量,

先将传入的字符串前三个字符存入新定义变量,当s[i+3]不等于‘\0’时循环执行s[i]=s[i+3],然后执

行s[i]=a1;s[i+1]=a2;s[i+2]=a3;最后返回主函数

 

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

 

问题:for循环条件错了,这是一整个字符串,题目已经保证字符串长度一定大于3

修改:s[i+2]应该是不等于'\0'2

4.正确的代码截图

 

 

 

 

 

6-4 字符串的连接

1.PTA提交列表

 

 

2.设计思路

 主函数定义*p,str1[MAXS+MAXS]={'\0'},str2[MAXS]={'\0'},输入str1,str2,调用str_cat子函数

子函数定义*p=s,当*s!='\0'时,执行s++;当*t!='\0'时,执行*s++=*t++;循环完之后*s='\0',返回

主函数。

 

 

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

问题:因为已经使*p=s,所以执行*p++是错的

修改:*p++=*t++改为*s++=*t++

 

4.正确的代码截图

 

 

 

 

 

6-6 使用函数实现字符串部分复制

1.PTA提交列表

 

2.设计思路

 主函数定义变量定义变量n, t[MAXN], s[MAXN],输入m,调用ReadString(t)子函数,

读到字符串第m个字符,然后调用strmcpy( t, m, s )子函数,从第m个字符开始的

全部字符复制到字符串s中,定义变量i,j,当*(t+i)!='\0'时,执行s[j++]=*(t+i),

累加然后执行*(s+j)='\0',返回主函数

 

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

 

 问题:循环初始条件出错,从第m个字符开始,但因为是数组,数组都是从0开始,所以第m个应该是m-1个

修改:把i=m改成i=m-1

 

4.正确的代码截图

 

 

 二、同学代码结对互评

1.互评同学名称

 麻英红

2.我的代码、互评同学代码截图

 

 

3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?

如果同学代码有错的也请帮忙指出来哪里出问题。

她用了三个循环,我只用了一个,她是一个一个来将字符移动到最后的

并存到s[ ]中,而我是一次将三个字符串进行移动,然后再存到s[ ]中,

我比较喜欢我的代码。

 

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

 

四、本周学习总结

1.你学会了什么?

 一些指针的基本概念及运用,还有指针数组等,如:*p是一个值,p是地址,指针变量可以初始化为空指针,

但不能用数值作为指针变量的初值;指针数组中每个数组元素中存放的内容都是地址,通过数组元素可以访

问它所指向的单元等。

2.本周的内容,你还不会什么?

指针数组和指针字符等不够明白,运用不好

指针练习最后几题也不会写

posted @ 2018-01-20 10:32  pumpkin15  阅读(151)  评论(0编辑  收藏  举报