美文网首页
go 数组应用

go 数组应用

作者: StevenQin | 来源:发表于2019-03-03 19:08 被阅读0次

    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)
    
    }
    

    相关文章

      网友评论

          本文标题:go 数组应用

          本文链接:https://www.haomeiwen.com/subject/gglmuqtx.html