转:C语言基础算法——数组元素的查找、删除和添加

分类: 信息学奥赛 |
来晚了,这篇博客本来整理好昨晚就该发的,但程序出现了点bug,抽时间又调了下,又恰逢今天与一些优秀的同学交流,聊天甚是愉悦并掌握了许多有用的信息,导致差点忘了这事。从这篇博客开始,我们慢慢要进阶了,小白们,如果觉得我写的还不错,麻烦你注册常来,顺便给我点个赞哈~让更多的人看到此类干货。
————————————————华丽分割线————————————————————
今天一样是对数组元素进行相应操作,不过是稍微复杂点的操作,但是在实际生活中又是比较基础的应用。我给思路给程序,发散思维的工作你们脑洞大点,充分发挥自己的想象力并去实施,你会慢慢发现C语言就是人工智能女友,哈哈。
————————————————华丽分割线————————————————————
一、数组元素的查找和删除
首先,给定一些数组元素(有些同学会问为什么总是给定?不要急,前期牢固基础,后期才能开车载人,成为一名合格的老司机),C中定义好一组数后,数组中的元素有下标或者说索引,比如说,第1个元素就是从下标为0开始,第2个元素下标就是1,……依次类推。
其次,我们遇到个问题:如果要访问数组中的元素,到底是直接访问元素?还是访问元素的下标?访问的计算机思路是什么?(数组元素在这里是数组中的数)
答:通过访问元素下标来访问元素。穷举法。谨记!!!
最后,既然是查找,那我们的思路就是:要查找的是元素的下标。如果和删除操作相结合就是:我们要怎么样才能删除特定的数据,查找到要删除的元素的下标后,然后干嘛?注意:前方高能地想,如果怎么样,那么要干嘛?也就是说,如果找到了,那么我要删除。
重头戏来了,初步思路已经有,你要怎么删除????
比如,1 2 3 4 5,删除 3 是不是成了 1 2 4 5。想想,
1、删除导致元素减少
2、4的位置到了3,5的位置到了4
总结:所谓删除逻辑就是,后面一个数覆盖前面一个数,最后数量要减少了1。
二、数组元素的添加
承接上面的删除操作,下启添加操作。
添加到底是个什么操作呢?这么说吧,你要挖墙脚,如狼似虎、锲而不舍、饥渴难耐的你在微信和她聊天,表白了,结果呢?你再发送消息,“您还不是对方的好友,请通过验证添加对方为好友”,她把你删了。后来呢,她和她男友吹了,她想起了锲而不舍的你(备胎一号),她又添加了你,此时,细心的朋友发现,刚添加的朋友在微信通讯录里是处于最后一位,而刷新一下,朋友就会因为昵称拼音首字母被有序排列在好友列表里。
要划重点了,同学们。你先是被添加了,通讯录里才有你,也就是说,先进行添加操作,再执行整体数量加1的操作。通讯录好比一个数组,刚添加的你是在最后一位,通讯录扩充了,而刷新后,你被排序了。(排序可用之前的冒泡排序,我敲的累所以没写)
总结:
1、先执行添加操作,再执行数组长度
+ 1 的操作
2、刚被添加的元素在数组末位
3、这里是数字,升序还是降序排列,随你,用我第一篇博客的方法去实现
好啦,上程序代码:
-
程序设计细节:
我增加了程序的判断能力(用好if-else if-else结构)
1、是否需要进行删除操作,通过输入0还是1进行。同理添加操作。
2、输入的是数字还是其他数字对程序的执行结果不同。
程序测试结果:
https://img-blog.csdn.net/20180213155303782?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvanVuamllX2Fj/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70
https://img-blog.csdn.net/20180213155415925?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvanVuamllX2Fj/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70
https://img-blog.csdn.net/20180213155445366?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvanVuamllX2Fj/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70
谢谢阅览,转载请注明出处。