排序和查找3
Posted green-frog-2019
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序和查找3相关的知识,希望对你有一定的参考价值。
多维数组我们只介绍二维数组。
二维数组的应用场景:
比如我们开发一个五子棋游戏,棋盘就是需要二维数组来表示。
二维数组的使用:
快速入门案例:
请用二维数组输出如下图形
0 0 0 0 0 0
0 0 1 0 0 0
0 2 0 3 0 0
0 0 0 0 0 0
代码演示:
func main()
//定义/声明 二维数组
var arr [4][6]int
//赋初值
arr[1][2] = 1
arr[2][1] = 2
arr[2][3] = 3
//遍历二维数组,按照要求输出图形
for i := 0; i < 4; i++
for j := 0; j < 6; j++
fmt.Print(arr[i][j], " ")
fmt.Println()
使用方式1:先声明/定义 再赋值
1)语法:var 数组名[大小][大小]类型
2)比如:var arr[2][3]int,再赋值。
3)使用演示
4)二维数组在内存的存在形式(重点)
func main()
//定义/声明 二维数组
var arr2 [2][3]int
arr2[1][1] = 10
fmt.Println(arr2)
fmt.Printf("arr2[0]的地址%p \\n", &arr2[0])
fmt.Printf("arr2[1]的地址%p \\n", &arr2[1])
fmt.Printf("arr2[0][0]的地址%p \\n", &arr2[0][0])
fmt.Printf("arr2[1][0]的地址%p \\n", &arr2[1][0])
打印的结果:
二维数组在内存的布局的示意图:
使用方式2:直接初始化
1)声明:var 数组名 [大小][大小]类型 = [大小][大小]类型初值..,初值..
2)赋值(有默认值,比如int 类型的就是0)
3)使用演示
4)说明:二维数组在声明/定义时也对应有四种写法【和一维数组类似】
var 数组名 [大小][大小]类型 = [大小][大小]类型初值..,初值..
var 数组名 [大小][大小]类型 = [...][大小]类型初值..,初值..
var 数组名 = [大小][大小]类型初值..,初值..
var 数组名 = [...][大小]类型初值..,初值..
func main()
var arr3 [2][3]int = [2][3]int1,2,3,4,5,6
fmt.Println("arr3=", arr3)
二维数组的遍历:
1)双层for循环完成遍历
案例演示:
func main()
var arr3 = [2][3]int1,2,3,4,5,6
//for循环遍历
for i := 0; i < len(arr3); i++
for j := 0; j < len(arr3[i]); j++
fmt.Printf("%v\\t", arr3[i][j])
fmt.Println()
2)for-range 方式完成遍历
案例演示:
func main()
var arr3 = [2][3]int1,2,3,4,5,6
//for-range来遍历二维数组
for i,v := range arr3
for j,v2 := range v
fmt.Printf("arr3[%v][%v]=%v \\t", i, j, v2)
fmt.Println()
小例子:
定义二维数组,用于保存三个班,每个班五名同学成绩,并求出每个班级平均分、以及所有班级平均分。
func main()
var scores [3][5]float64
//循环的输入成绩
for i := 0; i < len(scores); i++
for j := 0; j < len(scores[i]); j++
fmt.Printf("请输入第%d班的第%d个学生的成绩\\n", i+1, j+1)
fmt.Scanln(&scores[i][j])
//遍历输出成绩后的二维数组,统计平均分
totalSum := 0.0 //定义一个变量,用于累计所有班级的总分
for i := 0; i < len(scores); i++
sum := 0.0 //定义一个变量,用于累计各个班级的总分
for j := 0; j < len(scores[i]); j++
sum += scores[i][j]
totalSum += sum
fmt.Printf("第%d班级的总分为%v 平均分%v \\n", i+1, sum, sum / float64(len(scores[i])))
fmt.Printf("所有班级的总分为%v, 所有班级平均分%v \\n", totalSum, totalSum / 15)
以上是关于排序和查找3的主要内容,如果未能解决你的问题,请参考以下文章