去掉一个数组里的最大值与最小值,求数组元素的平均值。函数接口为:float avescore(float score[] ,int n)解析:此题比较简单,循环一遍,记下数组的最大值与最小值以及总和,然后在求的总和里面减掉最大值与最小值,再求平均数即可,时间复杂度为O(n)
// : Defines the entry point for the console application.
//
#include ""
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);
}