写点什么

【一 Go 到底】第二十八天 --- 数组实际案例与复杂应用

作者:指剑
  • 2022-10-28
    重庆
  • 本文字数:1052 字

    阅读完需:约 3 分钟

【一Go到底】第二十八天---数组实际案例与复杂应用

一、实际案例

1.1 for 循环放置数组元素

创建一个 byte 类型的 26 个元素的数组,分别放置'A-'Z'。使用 for 循环访问所有元素并打印出来。提示:字符数据运算'A'+1-> 'B'


package main
import ( "fmt")
func main() {
// 创建一个byte类型的26个元素的数组,分别放置'A-'Z'。 // 使用for循环访问所有元素并打印出来。提示:字符数据运算'A'+1-> 'B'
// 定义数组 barray := [26]byte{} for i := 0; i < 26; i++ { barray[i] = 'A' + byte(i) } for i := 0; i < 26; i++ { // ABCDEFGHIJKLMNOPQRSTUVWXYZ fmt.Printf("%c", barray[i]) }}
复制代码

1.2 输出数组最大值及其下标

package main
import "fmt"
func main() { // 求出一个数组最大值,并且输出其下标
// 声明数组
intArr := [5]int{84, 26, 76, 194, 45} // 定义两个中间变量 var index, value int for i, v := range intArr { if v > value { index = i value = v } } // 3 194 fmt.Printf("%d %d", index, value)}
复制代码

1.3 求数组的和以及平均值(for-range)

package main
import "fmt"
func main() { // 求数组的和 以及平均值 使用for-range
intArr := [5]int{11, 33, 22, 44, 89}
// 定义变量 var sum int // var average float64 for _, v := range intArr { sum += v } fmt.Printf("intArr数组的和 = %v, 平均值 = %v\n", sum, float64(sum)/float64(len(intArr)))}
复制代码

二、数组反转

随机生成五个数,并将其反转打印


  1. 使用 rand.Intn() 函数生成随机数

  2. 使用 time.Now().UnixNano() 设置种子

  3. 将反转值给到新的数组


package main
import ( "fmt" "math/rand" "time")
func main() { // 随机生成五个数,并将其反转打印 // 1. 使用 rand.Intn() 函数生成随机数 // 2. 使用 time.Now().UnixNano() 设置种子 // 声明数组 intArr := [5]int{} // 设置Seed rand.Seed(time.Now().UnixNano()) for i := 0; i < len(intArr); i++ {
// 随机生成一个 100 以内的数 intArr[i] = rand.Intn(100) } // intArr 数组 = [10 89 16 41 38] fmt.Println("intArr 数组 = ", intArr)
// 声明新数组 intArr2 := [5]int{} // 将其反转 for i := len(intArr) - 1; i >= 0; i-- { // 38 41 16 89 10 // fmt.Printf("%v ", intArr[i]) intArr2[len(intArr)-1-i] = intArr[i] } // intArr2 = [38 41 16 89 10] fmt.Println("intArr2 = ", intArr2)}
复制代码


发布于: 刚刚阅读数: 3
用户头像

指剑

关注

InfoQ签约作者 2022-07-13 加入

AWS社区建设者,AWS学生大使,微软学生大使,阿里云签约作者,Info Q签约作者,CSDN博客专家,华为云云享专家

评论

发布
暂无评论
【一Go到底】第二十八天---数组实际案例与复杂应用_Go_指剑_InfoQ写作社区