C博客作业--指针

一、PTA实验作业

题目1:6-2 求出数组中最大数和次最大数(10 分)

1. 本题PTA提交列表

2. 设计思路

3.代码截图

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

在第二部分找次最大值时我把max1初始化为0,然后输出的最大值是5,次最大值是12。调试了发现的我找最大值时没有把第一次找的最大值排除在外,最后要把max1赋值为1才得到正确答案。

题目2:6-5 判断回文字符串(20 分)

1. 本题PTA提交列表

2. 设计思路


	定义count并初始值为0,定义循环变量i,j,flag=0;//count用于统计字符串长度 
	for i=0  to  *(s+i)!='\0'
	   count每次加1
        end i.//求出字符串长度
	for i=0  to  i<count
		如果*(s+i)!=*(s+count-i-1) 
	    	 则flag=1并结束循环i
	end i.
	如果前面的循环不正常结束,即i<count
          则返回0
	否则返回1

3.代码截图

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

这题提交的时候只有一个点对,然后我就按那个测试点改了几遍还是没用,后来问同学才知到要返回的数时1和0,而不是题目中所说的'false'和'true'。后来把返回的改成1和0,就变成答案正确了。

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

1. 本题PTA提交列表

2. 设计思路

	定义循环变量i,j=0;//j用来实现两个数组的交换
	for  i=m-1  t[i]!='\0'
	   t[i]的值赋给s[j++],;//把符合要求的字符复制到s数组中
       end i.
	s[j]='\0'

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。没有在定义一个j,直接用i++,使控制循环的i发生了变化。

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

三、阅读代码


这是我在网上看到的本周PTA最后一题的代码,当初写这道题的时候我的想法是把退出圈子的人删掉再重组数组,但写的时候发现这个方法不可行,因为这样就不能得到退出的人原来位置的下标。而我看到的上述代码定义了一个数组来存放每个人的位置,当有人退出时就把它所在的数字赋值为0,这样它们原来的位置不用改变,也可以通过0来标记他们的退出状态。


这题是pta的题目的代码,在写这题时我用了swich语句来实现返回,用了多个返回语句。而这个代码在函数外定义了个全局变量,函数中通过返回指针(数组地址)来实现数据返回,我觉得效率比较高。

四、本周学习总结

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

本周学习了指针,刚开始觉得挺难的,因为搞不懂它的用法,但是通过写PTA上的题目,对指针有了更深的了解,就觉得它挺简单。所以后面的题目都写得挺顺利的,没遇到太多错误。

  • 如何定义指针变量和对指针变量赋值?
类型名  *指针变量名
如 int  *p;
     p=&i;
  • 指针之间的相互赋值只能在相同类型的指针之间进行。
  • 指针和数组的关系?
    数组名本身是一个地址即指针值。
    指针是以地址作为值的变量,而数组名的值是一个特殊的固定地址。可以看做常量指针。
  • p=a+1是合法的,但a=a+1是非法的,因为数组名是常量指针。

2.罗列本周一些错题。


D选项选项错在指针越界,当初没注意到这个。

指向运算符是用地址->访问指针指向的结构成员,形式为p->str++。

posted @ 2017-12-17 20:27  梁才玉  阅读(183)  评论(1编辑  收藏  举报