1.定义方式有两种
1)先声明/定义,再赋值
var 数组名[大小][大小]类型
func main() { //二维数组示例演示 /* 0 0 0 0 0 0 0 0 1 0 0 0 0 2 0 3 0 0 0 0 0 0 0 0 */ //定义、声明二维数组 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() } }
2)直接初始化
var 数组名[大小][大小]类型 = [大小][大小]类型{{初值...},{初值...}}
var 数组名[大小][大小]类型 = [...][大小]类型{{初值...},{初值...}}
var 数组名 = [大小][大小]类型{{初值...},{初值...}}
var 数组名 = [...][大小]类型{{初值...},{初值...}}
数组名 := [...][大小]类型{{初值...},{初值...}}
func main() { var arr1 [2][3]int = [2][3]int{{1, 2, 3}, {4, 5, 6}} fmt.Println(arr1) }
2.二维数组遍历:for遍历和for-range遍历
func main() { var arr1 [2][3]int = [2][3]int{{1, 2, 3}, {4, 5, 6}} //for循环遍历 for i := 0; i < len(arr1); i++ { for j := 0; j < len(arr1[i]); j++ { fmt.Printf("%v\t", arr1[i][j]) } fmt.Println() } //for-range来遍历二维数组 for _, v := range arr1 { for _, v2 := range v { fmt.Printf("%v\t", v2) } fmt.Println() } }
3.输入3个班每个班5个人的成绩,输出每个班的平均分和总平均分
func main() { var arr [3][5]float64 for i := 0; i < len(arr); i++ { for j := 0; j < len(arr[i]); j++ { fmt.Printf("请输入%v班第%v个学生的成绩:\n", i+1, j+1) fmt.Scanln(&arr[i][j]) } } //求每个年级的平均分及总平均分 var arrsum [3]float64 var arravg [3]float64 var n1 int for i := 0; i < len(arr); i++ { for j := 0; j < len(arr[i]); j++ { arrsum[i] += arr[i][j] if arr[i][j] != 0 { n1++ } } arravg[i] = arrsum[i] / float64(len(arr[i])) } var sum float64 for _, v := range arrsum { sum += v } avg := sum / 15 fmt.Printf("一共输入了%v学生的分数", n1) fmt.Println("每个班的平均分是:", arravg) fmt.Println("所有班级的平均分是:", avg) }
4.随机生成一个[0,100)的数组,求其倒叙数组,平均值,最大值最大值下标,最小值,最小值下标,里面是否有55。
package main import ( "fmt" "math/rand" "time" ) func ran() { var num [10]int for i := 0; i < 10; i++ { rand.Seed(time.Now().UnixNano()) num[i] = rand.Intn(100) } fmt.Println("数组num为:", num) var numf [10]int var sum int var max int = num[len(num)-1] var maxindex int var min int = num[len(num)-1] var minindex int var b1 bool = false for i := 0; i < 10; i++ { numf[i] = num[10-1-i] sum += numf[i] if max < numf[i] { max = numf[i] maxindex = i } if min > numf[i] { min = numf[i] minindex = i } if numf[i] == 55 { b1 = true } } fmt.Printf("倒叙数组为:%v\n 平均值为:%v\n 最大值为:%v\n 最大值下标为:%v\n 最小值为:%v\n 最小值下标为:%v\n 里面是否有55:%v\n ", numf, sum/10, max, maxindex, min, minindex, b1) }
标签:...,arr,int,fmt,++,var,二维,数组,go From: https://www.cnblogs.com/xiaoxiaomuyuyu/p/17123265.html