C博客作业--指针

一、PTA实验作业

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

  1. 本题PTA提交列表

  2. 设计思路

3.代码截图

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

我先把a[0]赋给了次最大值,这样使得如果第一个数就是最大值,那么后面找次大值时的判断出错。

题目2:6-5 判断回文字符串

  1. 本题PTA提交列表

  2. 设计思路

i从头开始遍历,j从尾开始遍历,直到i>j;
if *(s+i)不等于*(s+j),跳出循环 
end
if i<j 说明循环没有正常结束,则其中有配对不成功的,返回false
else 返回true 

3.代码截图

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

犯了一个小错误,忽略了数组是从0开始数的,忘记把字符串长度-1了

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

  1. 本题PTA提交列表

  2. 设计思路

	int k=0,j=0,i;
先遍历一遍字符串,得出字符串长度j
if m>j,那么*s=0,为空串
else 
复制数组
i for m-1  to 结尾
*(s+k)=*(t+i)
end;
*(s+k)=''

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明
在s数组末尾忘记加结束符了

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

三、阅读代码


这是课堂派上的一题,功能是将每个
单词的最后一个字母改成大写,他用一个k来控制分支,当遇到非空格时,k=1,空格时k=0,这很巧妙,要是我就会用一堆分支来解决

void Fun(char *str)
{
   int i,j;
   i=j=0;
   while( str[i])
   {
	   if(str[i]!=' ')
		   str[j++]=str[i];
	   i++;
   }
   str[j]='';
 }

该函数用来删除字符串中所有空格,首先这个代码真的太精简了,就一个简单的重构数组,就解决了问题,值得我学习。

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

  • 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。
  • 指针可以加上或减去一个整数。
  • 指针变量的数据类型是它所指向的变量的类型,一般情况下一旦指针变量的类型被确定后,它只能指向同种类型的变量。
  • 在定义指针变量时需要使用指针声明赋 * ,但指针声明符并不是指针的组成部分。
  • 不能往空指针里写东西,别问我怎么知道的。
  • 指针是以地址作为值的变量,而数组名的值是一个特殊的固定地址,可以把它看作是常量指针。
  • 两种相同类型的指针相减,表示它们之间相隔的数组元素数目。

2.罗列本周一些错题。

函数定义时忘记加变量类型了,太久没写函数有点忘了,还有写成

还是函数定义时忘记加变量类型了,还有重构数组的范围没搞清楚,因为数组是从0开始数的。

原文地址:https://www.cnblogs.com/hbw985609191/p/8028796.html