综合练习题:编写一个函数,随机接受一个数组,该数组有10个数,请找出最大的数和最小的数,以及所对应的数组下标是多少?
package main
import (
"fmt"
"time"
"math/rand"
)
func MaxNum(arr []int) (max int, maxIndex int) {
max = arr[0]//假设数组的第一位为最大值
//常规循环,找出最大值
for i := 0; i < len(arr); i ++ {
if max < arr[i]{
max = arr[i]
maxIndex = i
}
}
return max,maxIndex
}
func MinNum(arr []int) (min int,minIndex int) {
min = arr[0]//假设数组的第一位为最小值
//for-range循环方式,找出最小值
for index,val := range (arr) {
if min > val {
min = val
minIndex = index
}
}
return min,minIndex
}
func main() {
var (
arr [10]int
)
for i := 0; i < len(arr); i ++ {
rand.Seed(time.Now().UnixNano())
n := rand.Intn(100) + 1
arr[i] = n
}
fmt.Println("随机10位数组 = ", arr)
maxNum,maxKey := MaxNum(arr[:])
minNum,minKey := MinNum(arr[:])
fmt.Printf("最大值为%v,最大值的下标位置为%v\n",maxNum,maxKey)
fmt.Printf("最小值为%v,最小值的下标位置为%v\n",minNum,minKey)
}
输出结果:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)