C语言博客作业04--数组

对着背影说爱祢 提交于 2019-12-04 18:39:46

0.展示PTA总分(0----2)

1.本章学习总结(2分)

1.1 学习内容总结

数组中如何查找数据,有哪些做法:

1.顺序查找法:假设要查找的数为x,在数组a[100]中逐个查找,立一个flag=0没找到的标志,在for循环中确定flag的值,if(flag==1)找到,if(flag==0)未找到。详细步骤:课本例7-3。
2.二分查找法:前提是数组元素必须是有序的。假设要查找的数为x,在数组b[100]中查找,定义mid为数组的中间位置,用while(low<=high)通过x与b[mid]的大小比较,决定左移或者右移或者找到x直接输出(也可以使用int型函数,返回结果)。详细步骤:课本例8-8。

数组中如何插入数据,怎么做,可以写个伪代码或动态图展示方法:


详细可看pta题集:一维数组7-3简化的插入排序

数组中如何删除数据,这个有多种做法,请一一展示。

详细可看pta一维数组7-6 数组元素的删除

数组中目前学到排序方法,主要思路?

1.选择排序:

课本例7-5
2.冒泡排序:

课本例8-5

数组做枚举用法,有哪些案例?

判断回文数:课本7-11,pta二维数组7-5 找鞍点,7-6阅览室。

哈希数组用法,目前学过哪些案例,举例展示。

字符数组:pta字符数组7-1 判断E-mail地址是否合法 、7-2 IP地址转换 、7-3 字符串转换成十进制整数 。

1.2 本章学习体会

通过本章的学习,对于函数和循环部分的掌握程度有所加深,做题速度提升了不少,思路也比较清晰,但是对于某些知识点还是欠缺(如哈希数组,数组枚举),对于数组删除、插入,以及字符数组切分表达式题型熟练度不够。
这两周代码量:1100左右

2.PTA实验作业

2.1 题目名1:二维数组:7-7螺旋方阵

2.1.1 伪代码

2.1.2 代码截图

2.1.3 造测试数据

输入数据 输出数据 说明
1 1 正常数据
3 1 2 3
8 9 4
7 6 5
正常数据
0 数据越界
100 无法输出 数据越界

2.1.4 PTA提交列表及说明

部分正确和多种错误:不清楚如何正确表示出该规律,舍友做过这题,教我如何表达
格式错误:没有控制每个数所占的格数,把%d改为%3d;后面的两次提交正确是一次是正常不用函数,还有一个是用函数写的

2.2 题目名2:字符数组:7-4 删除重复字符

2.2.1 数据处理

2.2.2 代码截图

2.2.3 造测试数据

输入数据 输出数据 说明
sdsdgdhdfhdjfsdff dfghjs 正常数据
sdasandf asdsaoidjai adfijnos 正常数据
????dwjijfijiosjfisjjsd ?dfijosw 正常数据

2.2.4 PTA提交列表及说明

两次的部分正确:1,2两个测试点过不了(带空格)
解决方案:询问智凯大佬后得知,这题不能用scanf()函数需要用gets()函数,gets()函数可以读取整段字符,而且需要用strlen()函数来求长度。
这题有相似使用gets()和strlen()函数的还有7-1 判断E-mail地址是否合法 和7-5 切分表达式——写个tokenizer吧(这题是看超星平台上老师的讲解)

2.3 题目名3:7-1 判断E-mail地址是否合法

2.3.1 数据处理

2.3.2 代码截图



2.3.3 造测试数据

输入数据 输出数据 说明
daojdsioaosia NO 未有@和".com"
sjsijfi@dks.com YES 正常数据
akjdiw@@sdao.com NO 有两个@,错误

2.3.4 PTA提交列表及说明

部分正确:在'.'后的com答案错误,并且@@的测试点超时
3个编辑错误:均是在gets()函数的错误,在vs中gets()会出现错误,所以我改成了gets_s,但是在pta里这种形式就会出现错误,这三次是在vs里测过后,忘记更改get_s导致编辑错误
部分正确:@@和..的测试点超时,之后的几个非19分的都是这个原因
部分正确:针对19分的,在第12个测试点即(合法地址后有非法字符)错误,后来问了智凯大佬,在他的帮助下,我再设立一个数组,用来判断最后的".com"
答案正确:之后的几个答案正确,是我对原代码上做的一些小修改,想知道能不能过测试点

3.阅读代码(-2--1分)

31问答题
题目:

代码:

代码的优点及可学习的地方:
虽然看不太懂题目和代码,但是有几个很明显可以学习的地方:
1.巧妙地运用函数以及定义形参(在上一次的大作业中,很明显的感受到,在定义函数时,不知道该如何处理形参,所以大量的函数中的()都是无形参的,根据这段代码可对形参的定义以及使用有更深入的了解)
2.运用memset()和strcmp()函数来处理数组,使整段代码更加简洁,效率更高(在课堂派的作业中有出现过这两种函数,但是当时只是为了做题,就只粗略的了解一下函数的功能,并没有掌握这两种函数,这段代码激起我要掌握这两种函数的想法)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!