- 快速入门
请用二维数组输出如下图形
0 0 0 0 0 0
0 0 1 0 0 0
0 2 0 3 0 0
0 0 0 0 0 0
package main
import (
"fmt"
)
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()
}
}
使用方法一:
- 先声明/定义,再赋值
var arr [2][3]int,再赋值
var arr [2][3]int
arr[1][1] = 10
fmt.Println(arr)
fmt.Printf("arr[0]的地址=%p\n", &arr[0])
fmt.Printf("arr[1]的地址=%p\n", &arr[1])
fmt.Printf("arr[0][0]的地址=%p\n", &arr[0][0])
fmt.Printf("arr[1][0]的地址=%p\n", &arr[1][0])
使用方法二
- 直接初始化
1、声明:var 数组名 [大小][大小]类型 = [大小][大小]类型{{初值...},{初值...}}
2、赋值 (有默认值,比如int
类型就是0
)
3、使用演示
var arr [2][3]int = [2][3]int{{1, 2, 3}, {4, 5, 6}}
fmt.Println(arr)
//其它声明方法
var arr1 = [2][3]int{{1, 2, 3}, {4, 5, 6}}
fmt.Println("arr1=", arr1)
var arr2 = [...][3]int{{1, 2, 3}, {4, 5, 6}}
fmt.Println("arr2=", arr2)
var arr3 [2][3]int = [...][3]int{{1, 2, 3}, {4, 5, 6}}
fmt.Println("arr3=", arr3)
二维数组遍历
1、双层 for
循环遍历
2、for-range
遍历
var arr [2][3]int = [2][3]int{{1, 2, 3}, {4, 5, 6}}
fmt.Println(arr)
fmt.Println()
//for循环遍历
for i := 0; i < len(arr); i++ {
for j := 0; j < len(arr[i]); j++ {
fmt.Printf("arr[%v][%v] = %v \n", i, j, arr[i][j])
}
}
fmt.Println()
//for-range遍历
for i, v1 := range arr {
for j, v2 := range v1 {
fmt.Printf("arr[%v][%v] = %v \n", i, j, v2)
}
}
二维数组的应用案例
定义二维数组,用来保存三个班,每个班五名同学成绩
并求出每个班级平均分,以及所有班级平均分
var scores [3][5]float64
//循环输入成绩
//接收成绩的变量
var sc float64 = 0
var totalSum float64 = 0
for i := 0; i < len(scores); i++ {
var total float64 = 0
for j := 0; j < len(scores[i]); j++ {
fmt.Printf("请输入第%v个班的每%v个同学的成绩:", i+1, j+1)
fmt.Scanln(&sc)
scores[i][j] = sc
total += scores[i][j]
}
totalSum += total
//每执行到这里,一个班循环完
fmt.Printf("%v班平均分为%.2f\n", i+1, total/float64(len(scores[i])))
}
fmt.Printf("所有班级平均分为%.2f\n", totalSum/15)
网友评论