第五次作业

C语言博客作业05--指针

1.本章学习总结

1.1 思维导图

第五次作业_第1张图片

1.2 本章学习体会及代码量学习体会

1.2.1 学习体会

通过这一周的学习,让我明白了指针的重要性,在很多时候运用,会使得代码功能强大。指针是C语言中很有特色的一个东西,其他的语言基本没有这个功能,直接在内存上对变量赋值,同时也学到了很多函数可应用在字符串中运用比如strlen、strcat、strcmp等等,对数组的大小进行控制也学到了一个新的方法,动态内存分配,可以对数组的大小进行控制,防止像以前那样给数组定义过大的范围,浪费内存。  
但我发现,可以用指针的地方,可以用数组,我比较喜欢用数组写,可能是刚刚学习指针,不怎么熟悉的结果。以后的学习中要多运用指针打打代码,这样把这种新的方法通过锻炼,熟悉起来。

1.2.2 代码累计

第五次作业_第2张图片

2.PTA总分

3.PTA实验作业

3.1 PTA题目1

7-2 说反话-加强版 (20 分)
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

3.1.1 算法分析

输入字符串str
定义 i=字符串长度
while str[0]==空格
定义 j
 for j=0 to i then
str[j]=str[j+1]
end for
end while
while str[i-1]==空格
  str[i-1]='\0'
  i-1
end while
i = strlen(str)
定义h
for h =0 to i then
if str[h]==空格&&str[++h]==空格
定义j
for j=h to i then
str[j]=str[j+1]
end for 
if str[h]==空格&&str[h-1]==空格)
定义j
for j=h to i then
str[j]=str[j+1]
end for
end if
end if 
end for
i=字符串长度
for i to 0 then
if  str[i] ==空格
输出空格后的字符直至数组结束
str[i]='\0'
end if
end for
printf("%s", &str[i]);    

3.1.2 代码截图

第五次作业_第3张图片
第五次作业_第4张图片

3.1.3 PTA提交列表及说明

第五次作业_第5张图片
少考虑了多个空格及开头空格的情况

4.大作业

4.1.改造函数代码截图

第五次作业_第6张图片
第五次作业_第7张图片
第五次作业_第8张图片
第五次作业_第9张图片
第五次作业_第10张图片

4.2运行截图

第五次作业_第11张图片

4.3与前代码的改进

将产生随机数部分改成指针传递.
改进之前使用,需要多次调用函数
改进之后一次解决

4.4总结

在写这种代码比较多的程序中,当我们想好思路后开始打代码,不要一鼓作气从头打倒尾,这样中间可能会出现很多错误,而且这种代码比较多的程序中在中间找错误不是一件容易的事,
所以在写大作业的时候,最好是分块来写,先把某一功能的代码写完然后对相应的错误进行修改,这样修改的话会比较容易找出错误,确定这一功能没什么问题后再开始写实现下一功能的
代码
对指针的用法仍然不熟悉,能想到的改进之有这一点,与大部分同学还无法相比,还需要努力

你可能感兴趣的:(第五次作业)