一,思路:
这道题其实很简单,只需要把成绩排好序保存在一个新的切片里,再对其进行操作就行了
因为最大值和最小值就存在于排好序的切片里的最左边和最右边
并且,在通过舍弃掉最左边和最右边的元素求出最终成绩后,接下来要求的最佳成绩和最差成绩与最终成绩在排好序的切片中的关系同样仅仅是左右关系
最后,在求出最差成绩和最佳成绩后,把它们拿去存放原始成绩的数组里进行比对就可以求出它们分别是第几个评委所打的分数了
二,代码:
package main
import (
"fmt"
)
/*
跳水比赛,8个评委打分,运动员的成绩是8个成绩中去掉一个最高分,去掉一个最低分,
剩下6个成绩的平均分就是最终得分。使用一维数组实现以下功能:
1.把打最高分的评委和打最低分的评委找出来
2.找出最佳评委和最差评委。
最佳评委就是打分和最终成绩最接近的评委,最差评委就是打分和最终成绩相差最大的评委
*/
//冒泡排序函数
func scoreBubble(score []float32) (bubble []float32) {
var temp float32
for k := 0; k < len(score)-1; k++ {
for i := 0; i < len(score)-1-k; i++ {
if score[i] > score[i+1] {
temp = score[i]
score[i] = score[i+1]
score[i+1] = temp
}
}
}
return score
}
//求最终成绩的函数
func finalScore(