求问这段代码怎么解释

luo_xue_123 2017-10-11 02:17:36
这是一段求平均值的代码。但是有些看不懂

class Estimator {
public double average(double x[]) {
int count = x.length;
double aver=0,temp=0;
for( int i = 0; i<count; i++) {
for (int j=i;j<count;j++) {
if(x[j] < x[i]) {
temp = x[j];
x[j] = x[i];
x[i] = temp;
}
}
}
for(int i =1;i<count-1;i++) {
aver = aver+x[i];
}
if(count<2)
aver = aver/(count-2);
else
aver = 0;
return aver;
}
}
...全文
149 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
自由自在_Yu 2017-10-11
  • 打赏
  • 举报
回复
这代码有问题,只能求出来个数大于2的,不包括最大值和最小值的其余各数平均数
public double average(double x[]) {
		int count = x.length;
		double aver = 0, temp = 0;
		for (int i = 0; i < count; i++) {
			for (int j = i; j < count; j++) {
				if (x[j] < x[i]) {
					temp = x[j];
					x[j] = x[i];
					x[i] = temp;
				}
			}
		}
		System.out.print("从小到大排序:");
		for (int i = 0; i < x.length; i++) {
			System.out.print(x[i] + " ");
		}
		System.out.println("------------------------");
		for (int i = 1; i < count - 1; i++) {
			aver = aver + x[i];
		}
		System.out.println("去掉最大值和最小值,其余之和:" + aver);
		if (count > 2)  //改成大于2
			aver = aver / (count - 2);//去掉最大值和最小值之后,求平均值()
		else
			aver = 0; //小于等于2个数时返回0
		return aver;
	}
萧尽悠然 2017-10-11
  • 打赏
  • 举报
回复
你确定这是求平均值??调用时无论传参是什么,结果都是返回0啊。。。。。。

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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