數組
尚硅谷Golang課

數組

func main() {
	var n1 [3]int = [3]int{1, 2, 3}
	var n2 = [3]int{4, 5, 6}
	//長度聲明後就不能變化
	var n3 = [...]int{7, 8, 9}
	//數組長度是類型的一部分 [3]int != [4]int
	var n4 = [...]string{0: "李四", 1: "張三", 5: "王武"}
	n5 := []int{5, 5, 5, 5, 5}
	//[]int 這樣定義其實是切片

	fmt.Println(n1)
	fmt.Println(n2)
	fmt.Println(n3)
	fmt.Println(n4)
	fmt.Println(n5)

	n9 := fmt.Sprintf("%.2f", 9.888888)
	fmt.Println(n9)

	var score [5]float64
	for i := 0; i < len(score); i++ {
		fmt.Println("輸入成績")
		fmt.Scanln(&score[i])
	}
	for i := 0; i < len(score); i++ {
		fmt.Printf("score[%d]=%v\n", i, score[i])

	}
	arr := [3]int{11, 22, 33}
	fmt.Println(arr)
	test(&arr)
	fmt.Println(arr)

}

func test(a *[3]int) {
	a[0] = 88
	var arr4 = [3]string{"a", "b", "c"}
	b := 3
	arr4[b] = "tom"
	fmt.Println(arr4)
}

遍歷數組

func main() {
	arr1 := []int{1, 2, 3, 4, 5, 6, 7}
	for index, value := range arr1 {
		fmt.Printf("index=%v,value=%v\n", index, value)
	}
	for _, v := range arr1 {
		fmt.Printf("%v", v)
	}
}

應用練習

func main() {
	var az [26]byte
	for i := 0; i < len(az); i++ {
		az[i] = 'A' + byte(i)
		fmt.Printf("%c ", az[i])

	}

	var n1 = [...]int{1, 2, 6, 8, -5, 99, 44, 3, 0}
	max := n1[0]
	for i := 1; i < len(n1); i++ {
		if max < n1[i] {
			max = n1[i]
		}

	}
	fmt.Printf("%v\n", max)

	var n2 = [...]int{1, 2, 6, 8, -5, 99, 44, 3, 0}
	var sum int
	for _, v := range n2 {
		sum = sum + v
	}
	fmt.Printf("和=%v\n", sum)
	fmt.Printf("平均=%v\n", sum/len(n2))
	//我要保留平均的小數點
	fmt.Printf("平均=%.2f\n", float64(sum)/float64(len(n2)))

	//要求:隨機生成5個數字,並反轉後打印
	//思路:隨機 rand.Init(),放進數組,把數組反轉,打印

	var arr3 [5]int
	rand.Seed(time.Now().UnixNano())
	for i := 0; i < len(arr3); i++ {
		arr3[i] = rand.Intn(100) //0<=n<100
	}
	fmt.Println(arr3)
	//順序翻轉
	for i := 0; i < len(arr3)/2; i++ {
		arr3[i], arr3[len(arr3)-i-1] = arr3[len(arr3)-i-1], arr3[i]
	}
	fmt.Println(arr3)
}

上次修改於 2021-08-01

此篇文章的評論功能已經停用。