首先,循环范围不对,你得带大括号啊,以后一定要记住啊,多写个min=a【j】
然后 if(a[i]>=min&&a[i]
sum+=a[i];
n++;
count=n;
}
最简单情况如果都这些数都相等怎么办?条件不能设置成if(a[i]>=min&&a[i]
int maxflag=0;minflag=0;
for(j=1;j<20;j++) 你既然赋初值了,从1开始就可以了
{ (大括号很重要)
if(a[j]>max)
{
max=a[j];
maxflag=j;
else
if(a[j]
min=a[j];
minflag=j;
}
}(大括号很重要)
for(i=0;i<20;i++)
{
if(i!=minflag&&i!maxflag)
sum+=a[i];
}
ave=(double)sum/(a.length-2) 我这里是按去掉一个最大值和一个最小值算得
如果去掉所有最大和最小,就类似于你那种那个,但你写的多加个等号。。
#include
int main()
{ int a[20],i,sum=0,count=0;
int max,min,average;
for(i=0;i<20;i++)
{ scanf("%d",&a[i]);}
max=min=a[0];
for(i=0;i<20;i++)
{ if(a[i]>max) max=a[i];
if(a[i]
{ if(a[i]>min&&aa[i]
}
average=sum/count;
printf("count=%d,average=%d",count,average);
}
当然,这个是没有考虑count为零的情况,要是考虑只要加一个if语句就行了,相信你会的。
满意请采纳。
最后一个for循环体中,哪里来的 n ,而且也没有初始化,不妨把 n相关的语句去掉,直接 count++ 记录个数就行了。