pta指针作业

#PTA实验作业

6-1

本题pta提交列表

设计思路

 

本题是一道简单的指针程序题,两个数已经分别被指针定义,只要把用其指针把二者加在一起和减去即可

 调试过程

本题无调试过程

代码截图

 

6-2 

1. 本题PTA提交列表

2. 设计思路

题目要求我们把一维字符数组s的前三位调到后面,故我先把这三位保存下来,设为a,b,c。接着当s[i+3]!='\0'时,令一维字符数组s:s[i]=s[i+3],使得此时s数组为原来的数组提前三位,再将a,b,c依次赋值给s数组。如果变动的位数过多,也可以用循环,比较简便,这里只是三位,就没用循环。

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

 

(1)答案错误:在子函数中定义了一个字符型指针op,思路与上面的阐述差不多,但是忽视了至关重要的一点:题目要求我们写的子函数Shift(s)的返回值为空。而我将移动字母后的字符数组由字符型指针op指向,主函数并不能接收到。

(2)编译错误:因为用了指针也传不到主函数那,于是我决定用low一点的办法:将要移动的字母抽出来,接到字符数组最后面去。额,由于粗心,在for循环中第二个条件前多打了个*,导致编译出错。

4.代码截图。

6-6

 本题PTA提交列表

 

2. 设计思路

先用循环计算输入的t字符串的长度,如果m大于t的长度,*s赋值为\0.

否则从m-1开始,到t的长度,t循环赋值给s,s的后一位加上\0.

流程图:

 

 

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

临界关系错了,if条件改成m>i,i是t字符串的有效长度,m=i时把t中的字符全部赋值给s,

所以两者相等时,s不是空串。

 

#同学代码结对互评

我的代码

同学代码截图

1,我的代码先用双重循环找出s中的字符与子串t的字符相等的那个字符,再分别用两个变量验证那个字符之后的所有字符在两个字符串中是否相等,用n来记录相等的数量,如果相等的数量恒等于子串t的长度,则返回子串t在s中的位置。同学的代码是循环字符串s,与子串t的第一个字符相比较,如果相等,接着再循环验证子串t之后的字符是否与s之后的字符相等。

2,我的代码双重循环的第二重是没有必要的,因为子串t的第一个字符之后的字符即使与s相等,也没必要验证。

#本周pta排名

 

#本周学习总结
1,.懂得了可以利用指针来实现存储空间的动态分配..数组名a本身就是地址常量,以下语句等价:p=a;  p=&a[0];

2.对与内存动态分配有关的一些函数还不太理解,如不太理解malloc()与calloc()、realloc()的差别。

posted @ 2018-01-20 13:59  zzb1234  阅读(848)  评论(0编辑  收藏  举报