C语言博客05--指针
1.本章学习总结
1.1 思维导图
1.2 本章学习体会及代码量学习体会
1.2.1 学习体会
本章所学习的指针是一个崭新的知识点,在之前的学习中从未接触过,只知道数组的首地址,
所以学起来有点耗时间,虽然现在并未感觉到指针的强大,但是稍微知道一点c语言的人都知
道指针是c语言在所有语言中最特殊的一块,也知道下学期的数据结构会大量用到c语言,故
学起来还是比较认真的,所以自认为掌握得还不错。
1.2.2 代码累计
2.PTA总分
2.1截图PTA中函数题目集的排名得分
2.2 我的总分
总分:110
3.PTA实验作业
3.1 PTA题目1
7-2 说反话-加强版 (20 分) 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。 输出格式: 每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。
3.1.1 算法分析
```c 定义静态字符数组p[500000] 定义整型数i,flag=-1 //flag用来控制单词间只有一个空格 for i=0 to (p[i]=getchar () )!='\n' //当接收到换行符时停止 p[i]='\0' //将'\n'改为'\0' for i-- to i=0 do if p[i]=' ' then //将空格全部转化为'\0' p[i]='\0' if i=0&&p[i]!='\0' then printf("%s",p) //若i=0时不是空格,则输出最后一个单词 else if p[i]='\0'&&flag=1 then printf("%s",&p[i+1]) //一个个单词输出 else if p[i]!='\0' then if flag=0 then 输出空格 //在单词间输出一个空格 flag=1 end for
```
3.1.2 代码截图
3.1.4 PTA提交列表及说明
Q1:第一遍做的时候,出现了单词也反过来的问题
A1:重新审题发现题目看错,经过修改解决了
Q2:后来又出现了,第1个单词前面多了一个空格的现象
A2:经过修改解决
Q3:但是又出现单词间空格消失的现象
A3:干脆引入了一个flag,完美解决这个问题
4.大作业
4.1.改造函数介绍
1.函数1
2.函数2
3.函数3
4.3 与原有函数代码比较
1.原来的代码没有用到指针而是用全局变量 2.原来的代码用到的变量多,而用字符数组来存放算式可以有效减少变量的使用,可避免由于变量太多所导致的混乱 3.新增加了清屏的功能,可以使运行界面看起来更加友好。 4.比起原来的代码,现在的代码看起来功能更加明了。
4.4 改进大作业总结
1.指针在代码中的强大作用在此次大作业中初次感到 2.感觉此次大作业还有些不足,没有将代码写的更简洁,这可能跟之前的写法有关 3.指针的使用还不够熟练,得继续练习 4.与同学的代码相比,还是功能欠缺 5.比起之前的代码,bug有所减少 6.用字符数组来存放算式是一个好的方法,当实行起来并不顺利。