👻创作者:丶重明
👻创作时间:2025年3月7日
👻擅长领域:运维
目录
😶🌫️题目:
编写一个函数,接收一个整数切片,并返回切片中的最大值和最小值
😶🌫️要求:
- 函数名为
findMinMax
- 输入参数为一个整数切片
[]int
- 返回值为两个整数,分别表示最小值和最大值
😶🌫️资源:
有一组随机生成的整数:
go
3, 23, 43, 5436, 23, 36, 68, 443, 27
😶🌫️代码:
go
package main
import "fmt"
func findMinMax(nums []int) (int, int) {
if len(nums) == 0 {
return 0, 0
}
min, max := nums[0], nums[0]
for _, num := range nums {
if num < min {
min = num
}
if num > max {
max = num
}
}
return min, max
}
func main() {
input := []int{3, 23, 43, 5436, 23, 36, 68, 443, 27}
min, max := findMinMax(input)
fmt.Printf("最大的数字是: %d\n最小的数字是: %d", max, min)
}
😶🌫️输出:
go
> go run .\3.go_fmt.go
最大的数字是: 5436
最小的数字是: 3
😶🌫️解析:
go
func findMinMax(nums []int) (int, int) {...}
- 一个名为
findMinMax
的自定义函数,接收一个整数切片nums
作为参数 - 这个函数返回两个
int
整数类型的值
go
// len表示长度
if len(nums) == 0 {
return 0, 0
}
- 检查切片
nums
是否为空,如果长度=0,则返回两个0
go
min, max := nums[0], nums[0]
- 初始化
min
和max
变量,将它们都复制切片的第一个元素(切片中第一个元素用0
表示)
go
for _, num := range nums {
if num < min {
min = num
}
if num > max {
max = num
}
}
- 在
for
循环中使用range
关键字遍历nums
切片中每个元素 _
表示空白标识符,表示忽略返回的第一个值- 对于每个元素num,如果它小于当前的min,则更新min为num
- 如果它大于当前的max,则更新max为num
go
return min, max
- 遍历结束后,函数返回min和max,即切片中的最小值和最大值
go
func main() {
input := []int{3, 23, 43, 5436, 23, 36, 68, 443, 27}
min, max := findMinMax(input)
fmt.Printf("最大的数字是: %d\n最小的数字是: %d", max, min)
}
- 定义一个整数切片
input
,并初始化一些整数 - 调用
findMinMax
函数,将input
切片作为参数传递给它,并将返回的最小值和最大值赋值给min
和max
变量 - 然后使用
fmt.Printf
函数格式化输出结果