得到一组数据,去掉一到两个最大数,和一到两个最小数,再求平均值,有什么该当比较准确点取平均值的么?

茂十茂 2008-12-29 04:16:52


2,5,8,6,5,12,8,7,9,3,7,1,15,6 去掉最小数,1,2 去掉最大数,12,15 再求剩下的平均值,能用一个函数比较快速地算出么?
...全文
394 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ycagri 2010-12-08
  • 打赏
  • 举报
回复
为0影响吗
yyyrrr51 2010-12-08
  • 打赏
  • 举报
回复
另外还要考虑为0的情况下不能加入平均值吧。
止戈而立 2008-12-29
  • 打赏
  • 举报
回复
            List<int> list = new List<int> { 2, 5, 8, 6, 5, 12, 8, 7, 9, 3, 7, 1, 15, 6 };
list.Sort();
list.RemoveRange(list.Count - 2, 2);
list.RemoveRange(0, 2);
double avg = list.Average();
chenye365 2008-12-29
  • 打赏
  • 举报
回复
添加到Arrylist里边在sort 一样
我姓区不姓区 2008-12-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 comszmz 的回复:]
不是,这组数据是在一个object的items里,

比如object.items[i].x=10

[/Quote]
你自己不会变通一下?
茂十茂 2008-12-29
  • 打赏
  • 举报
回复
不是,这组数据是在一个object的items里,

比如object.items[i].x=10
我姓区不姓区 2008-12-29
  • 打赏
  • 举报
回复

static void Main(string[] args)
{
Console.WriteLine(GetAverage(new int[] { 2, 5, 8, 6, 5, 12, 8, 7, 9, 3, 7, 1, 15, 6 }));
}

static double GetAverage(int[] array)
{
if (array.Length > 5)
{
Array.Sort(array);
int total = 0;
for (int i = 2; i <= array.Length - 3; i++)
total += array[i];
return (double)total / (array.Length - 4);
}
return 0;
}
/*
输出6.4
*/

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧