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)
}
网友评论