输入若干正整数,0代表输入结束。将该组数据排序后去掉最大的两个数和最小的两个数后再求平均值
这是我的程序,不知道为什么有的时候可以,有的时候不可以
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int a[10],sum=0,i,j,k,l,m;
float q;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
if(a[i]==0)
{break;}
}
for(j=0;j<10;j++)
{
for(k=0;k<10-j-1;k++)
{
if(a[k]<a[k+1])
{
l=a[k];
a[k]=a[k+1];
a[k+1]=l;
}
}
} //大到小排序
for(m=2;m<i-2;m++)
{
sum=sum+a[m]; //不计算头和尾的两个数据求平均值
}
q=sum*1.00/(m-2);
printf("%.2f",q);
return 0;
}
你程序,数组长度不正确,它不一定是10啊
你要加一个数组长变量的