开发者学堂课程【GO 语言核心编程-基础语法、数组、切片、Map:数组应用实例(1)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/625/detail/9632
数组应用实例(1)
一、数组应用实例及解决方法
1.数组应用案例
(1) 创建一个 byte 类型的26个元素的数组,分别放置'A'-‘Z’。使
for 循环访问所有元素并打印出来。提示:字符数据运算‘A'+1->'B'
//应用了字符可以参与运算的特性,也就是说在放置的时候,不能一个一个放置,要求使用 for 循环来进行放置和打印。
(2) 解:
新建一个文件夹叫 arrayExercise,再创建一个文件 main.go
package main
import { //引用包
"fmt"
func main() {
(3) 要求:
①创建一个 byte 类型的26个元素的数组,分别放置'A'-‘Z’。
②使用 for 循环访问所有元素并打印出来。提示:字符数据运算‘A'+1->'B'
(4) 思路:
①声明一个数组 var myChars [26]byte
②声明一个数组叫 myChars ,大小为26,数组类型为 byte
③使用 for 循环,利用字符可以进行运算的特点来赋值‘A'+1 ->‘B'
④使用 for 打印即可
(5) 代码:
var mychars [26]byte
for i := 0; i < 26; i++ {
//定义一个i,从0开始 i 小于26
myChars[i] ='A' + byte(i)
//myChars 下标为i的时候等于“A”加上 byte(i)
(6) 注意:需要将 i => byte,因为此项目在计算的时候是 int 类型
而A的类型是 byte,类型不匹配,不能够进行运算,所以不能只写 i,否则会报错
}
for i := 0; i < 26; i++ {
fmt.Printf("%c ", myChars[i])
//使用 for 循环进行输出,按照字符进行输出,所以需要格式化成%c
输出效果如下:
输出结果正确。
2.请求出一个数组的最大值,并得到对应的下标
给与一个数组,并且要求把此数组的最大值导出来,而且需要将最大值对应的下标找出来
(1) 思路
①声明一个数组 var intArr [5]int=[...]int {1,-1,9, 90,11}
②首先声明一个数组,名称叫 intArr,数组有五个元素为{1,-1,9,90,11},最大值为90
③假定第一个元素就是最大值,下标就是0
④然后从第二个元素开始循环比较,如果发现有更大的数,则交换
fmt.Println()(最大值)
(2) 代码:
fmt.Println() //输出换行
var intArr [5]int = [...]int {1,-1,9,90,11} //定义数组
maxVal := intArr[0] //定义一个变量,最大值为第一个元素
maxValIndex := 0 //最大值的下标为0
for i := 1; i < len(intArr); i++ {
//for 循环,从第二个元素开始进行循环比较,如果发现有更大,则交换
if maxVal < intArr[i] { //如果发现 maxVal 小于当前的值
maxVal = intArr[i] //交换最大值
maxValIndex = i //交换下标
当整个for循环结束后,maxVal 和 maxVlIndex 就是真实的最大值以及最大值下标
}
}
fmt.Printf( "maxVal=%v maxValIndex=%v", maxVal,maxValIndex) //输出最大值以及最大值对应的坐标
}
运行结果如下:
maxVal=90 maxVlindex=3
从结果可知,最大值为90,下标为3,结果成立。
如果元素增加一位,则代码无需变化,只需要增加一个元素即可:
var intArr [6]int=[...]int {1,-1,9, 90,11,9000}
运行结果如下:
maxVal=90 maxVlindex=5
最大值为9000,下标为5,完全正确。
3.请求出一个数组的和和平均值。for-range
