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++ {
	fmt.Printf("%c ", myChars[i])
}


  • 案例2
    • 请求出一个数组的最大值,并得到对应的下标
  • 思路
    • 声明一个数组 var intArr[5] = [...]int {1, -1, 9, 90, 11}
    • 假定第一个元素就是最大值,下标就0
    • 然后从第二个元素开始循环比较,如果发现有更大,则交换
var intArr [6]int = [...]int {1, -1, 9, 90, 11, 9000}
maxVal := intArr[0]
maxValIndex := 0

for i := 1; i < len(intArr); i++ {
	//然后从第二个元素开始循环比较,如果发现有更大,则交换
	if maxVal < intArr[i] {
		maxVal = intArr[i]
		maxValIndex = i
	}
}
fmt.Printf("maxVal=%v maxValIndex=%v\n\n", maxVal, maxValIndex)


  • 案例3
    • 请求出一个数组的和和平均值。使用for-range。
var intArr2 [5]int = [...]int {1, -1, 9, 90, 12}
sum := 0
for _, val := range intArr2 {
	//累计求和
	sum += val
}

//如何让平均值保留到小数.
fmt.Printf("sum=%v 平均值=%v \n\n", sum, float64(sum) / float64(len(intArr2)))


  • 案例4 
    • 随机生成五个数,并将其反转打印
var intArr3 [5]int 
//为了每次生成的随机数不一样,我们需要给一个seed值
len := len(intArr3)

rand.Seed(time.Now().UnixNano())
for i := 0; i < len; i++ {
	intArr3[i] = rand.Intn(100) //  0<=n<100
}

fmt.Println("交换前=", intArr3)
//反转打印 , 交换的次数是  len / 2, 
//倒数第一个和第一个元素交换, 倒数第2个和第2个元素交换
temp := 0  //做一个临时变量
for i := 0; i < len / 2; i++ {
	temp = intArr3[len - 1 - i]  
	intArr3[len - 1 - i] = intArr3[i]
	intArr3[i] = temp
}

fmt.Println("交换后=", intArr3)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值