- 按键认证大神
- 2699998
- 3587
- 11
- 2173 朵
- 7386 个
- 1021 个
- 91120
- 2014-08-23
|
1#
t
T
发表于 2022-05-06 22:01
|
|只看楼主
题目描述 在大部分的魔方速拧比赛中,会记录一个选手的5次成绩,平均成绩的方式为去掉最高分和最低分后的平均分。 请编写一个函数,给定一个包含5个浮点数的成绩列表times,求出他的平均成绩和最佳成绩(最多保留2位小数)。
示例: 输入: [9.5, 7.6, 11.4, 10.5, 8.1],输出: (9.37, 7.6)。 因为平均成绩是:(9.5 + 10.5 + 8.1) / 3 = 9.37,最佳成绩是:7.6。
题目难度:简单 题目来源:CodeWars-Find the Speedcuber's times! 题目交流: 584781753
|
- // 请将断言插件升级到 v1.1
- Import "SmAssert.dll"
- Function 魔方比赛成绩(成绩列表)
- // 您的代码写在这里
- End Function
- SmAssert.That 魔方比赛成绩(Array(9.5, 7.6, 11.4, 10.5, 8.1)) ,"=", Array(9.37, 7.6)
- SmAssert.That 魔方比赛成绩(Array(13.4, 12.3, 9.5, 11.9, 20.8)) ,"=", Array(12.53, 9.5)
- SmAssert.That 魔方比赛成绩(Array(28.3, 14.5, 17.3, 8.9, 10.1)) ,"=", Array(13.97, 8.9)
复制代码 参考题解- // 请将断言插件升级到 v1.1
- Import "SmAssert.dll"
- Function 魔方比赛成绩(成绩列表)
-
- '【作者】:神梦无痕
- '【QQ】:1042207232
- '【Q群】:584781753
-
- Dim 最小值, 最大值, 求和, 平均值
- Dim i
-
- If UBound(成绩列表) > - 1 Then
- 最小值 = 成绩列表(0)
- 最大值 = 成绩列表(0)
- 求和 = 成绩列表(0)
- For i = 1 To UBound(成绩列表)
- If 成绩列表(i) < 最小值 Then
- 最小值 = 成绩列表(i)
- ElseIf 成绩列表(i) > 最大值 Then
- 最大值 = 成绩列表(i)
- End If
- 求和 = 求和 + 成绩列表(i)
- Next
- 求和 = 求和 - 最大值 - 最小值
- 平均值 = Round(求和 / (UBound(成绩列表) + 1 - 2), 2)
- End If
- 魔方比赛成绩 = Array(平均值, 最小值)
- End Function
- SmAssert.That 魔方比赛成绩(Array(9.5, 7.6, 11.4, 10.5, 8.1)) ,"=", Array(9.37, 7.6)
- SmAssert.That 魔方比赛成绩(Array(13.4, 12.3, 9.5, 11.9, 20.8)) ,"=", Array(12.53, 9.5)
- SmAssert.That 魔方比赛成绩(Array(28.3, 14.5, 17.3, 8.9, 10.1)) ,"=", Array(13.97, 8.9)
复制代码 插件下载【插件】神梦断言插件 SmAssert.dll,帮助开发者发现业务逻辑错误
|