go 数组应用

2019-03-03  本文已影响0人  StevenQin

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

数组复杂使用

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)

}
上一篇 下一篇

猜你喜欢

热点阅读