go实现跳水比赛,8个评委打分。运动员的成绩是8个成绩取掉一个最高分,去掉一个最低分,剩下的6个分数的平均分就是最后得分和最佳评委和最差评委

package main

import (
	"fmt"
	"gocode/oa/utils"
	"math"
)

func main() {

    // 定义一个成绩的数组
    var cj = [8]float64{10, 11, 15, 16, 13, 70, 14.5, 22} 

    // 对成绩进行冒泡排序,可以看我上一篇文章,如何实现冒泡排序
	sort := utils.Maopao(cj)


    //去掉最高和最低的成绩和
    var sum float64 
  	for index, value := range sort {
		if index > 0 && index < len(sort)-1 {
			sum += value
		}
	}

    //求出平均成绩
    avg := sum / float64(len(cj))
 

    // 定义一个数组来接收每个老师打分与平均的分差
    var arrAbs = [8]float64{}
	for index, value := range cj {
		abs := math.Abs(value - avg)
		arrAbs[index] = abs
	}


    var max, min int

    // 将分差复制一份
    arrAbs1 := arrAbs
	
	for i := 0; i < 8; i++ {
        // 通过比较得出分差最大的老师下标
		if arrAbs[max] < arrAbs[i] {
			max = i
		}
        // 通过比较得出分差最小的老师下标
		if arrAbs1[min] > arrAbs1[i] {
			min = i
		}
	}

    fmt.Println("平均成绩是", avg)
	fmt.Println("最接近的是", min)
	fmt.Println("最离谱的是", max)




}

运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值