开发者学堂课程【GO 语言核心编程-基础语法、数组、切片、Map:数组和查找的作业布置】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/625/detail/9655
数组和查找的作业布置
一、数组和查找的作业布置
这里开始 golang 关于数组和查找的作业布置。学习任何东西如果不进行练习,那么学习的效果肯定是大打折扣的,所以在下面进行相关数组和排序作业的布置,一共十个题。
题目1:随机生成10个整数(1_ 100 的范围)保存到数组,并倒序打印以及求平均值、求最大值和最大值的下标、并查找里面是否有55。
分析:这里以前学过 rand 函数,函数中有个方法是 Intn,可以生成随机数。
题目2:已知有个排序好(升序)的数組,要求插入一个元素,最后打印该数组,顺序依然是升序。
分析:就是给出一个元素,要把这个元素加入到数组当中,然后保证数组仍然是有序的。这里都知道数组是不可以动态增长的,所以要完成这个功能就要创建一个新数组,这个新数组要比原来数组多一个元素,再按照顺序把原先的数组拷贝到新数组中,同时要考虑新元素插入到哪里。
题目3:定义一个3行4列的二维数组,逐个从键盘输入值,编写程序将四周的数据清0。
分析:就是说3行4列的二维数组四周都为0。
题目4:定义一个4行4列的二维数组,逐个从键盘输入值,然后将第1行和第4行的数据进行交换,将第2行和第3行的数据进行交换。
分析:将第1行和第4行进行交互,第2行和第3行进行交换。
题目5:试保存1 3 5 7 9五个奇数到数组,并倒序打印。
分析:数组的逆序打印。
题目6:试写出实现查找的核心代码,比如已知数组 arr [10]string;里面保存了十个元素,现要查找"AA"在其中是否存在,打印提示, 如果有多个"AA",也要找到对应的下标。
分析:之前讲过的顺序查找案例是查找一个就退出,而这里是查找多个"AA",也要找到对应的下标,这里面可能有两个三个AA,要找全。
题目7:随机生成10个整数(1-100之间),使用冒泡排序法进行排序,然后使用二分查找法,查找是否有90这个数,并显示下标,如果没有则提示“找不到该数”
题目8:编写一个函数,可以接收一个数组,该数组有5个数,请找出最大的数和最小的数和对应的数组下标是多少?
分析:前面讲过查找一个数组里面最大的值和对应的下标,而这个题就是扩展下,找到最大的数和最小的数。
题目9:定义一个数组,并给出8个整数,求该数组中大于平均值的数的个数,和小于平均值的数的个数。
分析:找到数组中多少个数大于平均值和多少个数小于平均值。
题目10(有难度):跳水比赛,8个评委打分。运动员的成绩是8个成绩取掉一个最高分, 去掉一个最低分,剩下的6个分数的平均分就是最后得分。使用一维数组实现如下功能:
(1)请把打最高分的评委和最低分的评委找出来。
(2)找出最佳评委和最差评委。最佳评委就是打分和最后得分最接近的评委。最差评委就是
打分和最后得分相差最大的。
只有多做题才能把编程语言学会,真正学会编程思想。