第1个回答 2014-10-15
请参考:
#include"stdio.h"
#define N 10
int findmax(float*a,int n)
{
int temp = 0;
for (int i=1;i<n;i++)
{
if (a[temp]<a[i])
{
temp =i;
}
}
return temp;
}
int findmin(float*a,int n)
{
int temp = 0;
for (int i=1;i<n;i++)
{
if (a[temp]>a[i])
{
temp =i;
}
}
return temp;
}
void fun()
{
int k,f;
float a[N],sum = 0,avg = 0 ;
printf("请输入10个分数\n");
for (int i=0;i<N;i++)
{
scanf("%f",&a[i]);
}
k = findmax(a,N);
f = findmin(a,N);
printf("去除最大值%f\n",a[k]);
printf("去除最小值%f\n",a[f]);
for (int i=0;i<N;i++)
{
sum+=a[i];
}
sum-=(a[k]+a[f]);
avg = sum/(N-2);
printf("结果等于:%f\n",avg);
};
int main()
{
fun(); //你要调用的函数
return 0;
}本回答被提问者采纳
第2个回答 2014-10-15
#include <stdio.h>
float fun(float [],int);
int main(void)
{
float num[100]={0.0},aver=0.0;
int n=0,count=0;
printf("多少个得分:\n");
scanf("%d",&n);
for(count=0;count<n;count++)
scanf("%f",&num[count]);
aver=fun(num,n);
printf("平均值:%f\n",aver);
return 0;
}
float fun(float *a,int n)
{
int count=0;
float max=a[0],min=a[0],sum=0.0;
for(count=1;count<n;count++)
{
if(a[count]>max) max=a[count];
if(a[count]<max) min=a[count];
sum+=a[count];
}
sum-=max+min;
return sum/(n-2);
}
结果有误差,如果你找不到错就可能是小数计算引起的的误差问题.