您的位置:首页 > 其它

去掉最大和最小,再求平均值

2013-06-08 15:53 253 查看
去掉一个数组里的最大值与最小值,求数组元素的平均值。函数接口为:float avescore(float score[] ,int n)解析:此题比较简单,循环一遍,记下数组的最大值与最小值以及总和,然后在求的总和里面减掉最大值与最小值,再求平均数即可,时间复杂度为O(n)

// test1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
float average(float a[], int n);

int main(int argc, char* argv[])
{
	float a[5]={1,5,532.2,6,7};
	int n=5;
	float out=average(a,5);
	printf("%f\n", out);
	return 0;
}

float average(float a[], int n)
{
	float max=a[0];
	float min=a[0];
	float sum=0;

	for (int i=0;i<n;i++)
	{
		sum+=a[i];

		max=max<a[i]? a[i]:max;
		min=min>a[i]? a[i]:min;
	}

	return (sum-max-min)/(n-2);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐