哪位能帮忙修改一下C语言程序

来源:百度知道 编辑:UC知道 时间:2024/06/05 13:37:29
十个数去掉一个最高一个最底,求剩下的平均数
#include <stdio.h>
#include <math.h>
#define N 10
void main ()
{
double x[N],y[N],sum,v,min;
int i,m;
printf("Input %d number:\n",N);
for (i=0;i<N;i++){
scanf("%d",&x[i]);
sum+=x[i];
}
v=sum/N;
for (i=0;i<N;i++)
y[i]=fabs(x[i]-v);
min=y[0];
m=0;
for (i=1;i<N;i++){
if (min<=y[i]){
min=min;
m=m;
}
else{
min=y[i];
m=i;
}
}
printf("%lf,it is x[%d]\n",min,m);
}

//十个数去掉一个最高一个最底,求剩下的平均数
#include <stdio.h>
#include <math.h>
#define N 10
void main ()
{
float x[N],min,max;
float avg,sum=0;
int i;
printf("Input %d number:\n",N);
for (i=0;i<N;i++){
scanf("%f",&x[i]);
}
min=max=x[0];
for(i=0;i<N;i++){
if(x[i]<=min)
min=x[i];
if(x[i]>max)
max=x[i];
}
printf("The min is %3.2f and the max is %3.2f\n",min,max);
avg=(x[0]+x[1]+x[2]+x[3]+x[4]+x[5]+x[6]+x[7]+x[8]+x[9]-min-max)/8;
printf("The average is %3.2f\n",avg);
}

你这样好麻烦。。而且没实现功能。。

思路:
先输入10个数,
再对10个数排序
然后对a[1] 到a[8] 求和s
s/8 就是符合要求的答案。

不用排序哪么麻烦吧 遍历一遍找出最大和最小就可以了
具体的
float min=a[0];
float max=a[0];
float sum=0;
for(i = 0;i<10;i++)
{
if(min>a[i])
min = a[i];
if(max < a[i])
max = a[i];
sum +=