去掉一个数组里的最大值与最小值,求数组元素的平均值。函数接口为: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);
-
}