C博客作业--指针
一、PTA实验作业
题目1:6-2 求出数组中最大数和次最大数
-
本题PTA提交列表
-
设计思路
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
我先把a[0]赋给了次最大值,这样使得如果第一个数就是最大值,那么后面找次大值时的判断出错。
题目2:6-5 判断回文字符串
-
本题PTA提交列表
-
设计思路
i从头开始遍历,j从尾开始遍历,直到i>j;
if *(s+i)不等于*(s+j),跳出循环
end
if i<j 说明循环没有正常结束,则其中有配对不成功的,返回false
else 返回true
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
犯了一个小错误,忽略了数组是从0开始数的,忘记把字符串长度-1了
题目3:6-8 使用函数实现字符串部分复制
-
本题PTA提交列表
-
设计思路
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)='\0'
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]='\0';
}
该函数用来删除字符串中所有空格,首先这个代码真的太精简了,就一个简单的重构数组,就解决了问题,值得我学习。
四、本周学习总结
1.自己总结本周学习内容。
- 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。
- 指针可以加上或减去一个整数。
- 指针变量的数据类型是它所指向的变量的类型,一般情况下一旦指针变量的类型被确定后,它只能指向同种类型的变量。
- 在定义指针变量时需要使用指针声明赋 * ,但指针声明符并不是指针的组成部分。
- 不能往空指针里写东西,别问我怎么知道的。
- 指针是以地址作为值的变量,而数组名的值是一个特殊的固定地址,可以把它看作是常量指针。
- 两种相同类型的指针相减,表示它们之间相隔的数组元素数目。
2.罗列本周一些错题。
函数定义时忘记加变量类型了,太久没写函数有点忘了,还有\0写成\n
还是函数定义时忘记加变量类型了,还有重构数组的范围没搞清楚,因为数组是从0开始数的。