go 数组应用

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

    var myChars [26]byte
    for i := 0; i < 26; i++ {
        myChars[i] = 'A' + byte(i) //要将i 转成 byte
    }
    for i := 0; i < 26; i++ {
        //%c按字符串输出
        fmt.Printf("%c ", myChars[i])
    }

2、请求一个数组的最大值,并把其下标也打印出来

    var intArr = [...]int{10, 13, -9, 55, 17, 11}
    maxValue := intArr[0]
    maxValueIndex := 0
    for i := 1; i < len(intArr); i++ {
        if maxValue < intArr[i] {
            maxValue = intArr[i]
            maxValueIndex = i
        }
    }
    fmt.Printf("maxValue=%v maxValueIndex=%v", maxValue, maxValueIndex)

3、求一个数组的平均值,用for-range

    var intArr = [...]int{10, 13, -9, 55, 17, 11}
    sum := 0
    for _, val := range intArr {
        sum += val
    }
    //除法 转为float64  格式化保留1位小数
    fmt.Printf("和=%v,平均值=%.1f \n", sum, float64(sum)/float64(len(intArr)))

数组复杂使用

  • 随机生成5个数,并将其反转打印
package main

import (
    "fmt"
    "math/rand"
    "time"
)

func main() {
    var intArr [5]int
    len := len(intArr)
    //为了每次生成的随机数不一样,我们需要给一个seed值
    rand.Seed(time.Now().UnixNano())
    for i := 0; i < len; i++ {
        intArr[i] = rand.Intn(100) // 生成随机数 0<=n<100
    }
    fmt.Println(intArr)

    //反转打印实现:1、交换次数是:数组长度/2 2、第一个和倒数第一个(长度-1);第二个和倒数第二个(长度-2);
    tmp := 0
    for i := 0; i < len/2; i++ {
        tmp = intArr[len-1-i]
        intArr[len-1-i] = intArr[i]
        intArr[i] = tmp
    }
    fmt.Println("反转后:", intArr)

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。