C语言编程从键盘上输入20个整数,求去掉最大值和最小值以后那些元素的平均值。

要求:用函数实现各功能,主函数中调用这些函数完成程序。
我的答案哪里错了啊
#include <stdio.h>
void readln(int a[20],int n);
{
for(n=0,n<20,n++)
scanf("%d",&a[n]);
}
int findMax(int a[20],int n,max);
{
max=a[0];
for(n=0;n<20;n++)
{
if(max<a[n])
max=a[n];
}
}
int findMin(int a[20],int n,min);
{
min=a[0];
for(n=0;n<20;n++)
{
if(min>a[n])
min=a[n];
}
}
double aveint a[20],int n,int max,int min);
{
for(n=0,a[n]!=max&&a [n]!=min,n++)
}
int main()
{
int a[20];
int m,n,k,p,max,min;
readln (a[20],n);
findMax (a[20],m,max);
findMin (a[20],k,min);
ave(a[20],p,max,min);
return 0;
}

感觉错了很多地方..

你看下我的代码参考一下叭。

#include <stdio.h>
#define N 20

void readln(int a[],int n){
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
}

int findMax(int a[],int n){
int max=a[0],i;
for(i=0;i<n;i++)
max=max<a[i]?a[i]:max;
return max;
}

int findMin(int a[],int n){
int min=a[0],i;
for(i=0;i<n;i++)
min=min>a[i]?a[i]:min;
return min;
}

double ave(int a[],int n,int max,int min){
double sum=0;
for(int i=0;i<n;i++)
sum+=(a[i]!=max&&a[i]!=min)?a[i]:0;
return sum/(N-2);
}

int main(){
int a[N];
readln(a,N);
printf("%.2lf\n",ave(a,N,findMax(a,N),findMin(a,N)));
}

温馨提示:答案为网友推荐,仅供参考
相似回答