#include
#include
using namespace std;
const int N=20;
int num[N];
int main()
{
int count[100]={0},i,j,sum=0,mode;
double aver,median;
for(i=0;i<N;i++)
{
cin>>num[i];
sum+=num[i];
count[num[i]]++;
}
aver=1.0*sum/N;
int maxi=0;
for(i=0;i<100;i++)
{
if(count[i])
{
if(count[i]>maxi)
{
maxi=count[i];
mode=i;
}
}
}
for(i=0;i<N-1;i++)
{
int mini=i;
for(j=i+1;j<N;j++)
{
if(num[j]<num[mini]) mini=j;
}
if(mini!=i)
{
int t=num[i];
num[i]=num[mini];
num[mini]=t;
}
}
if(N%2!=0)
{
median=num[N/2];
}
else
{
median=(num[N/2]+num[N/2-1])/2.0;
}
cout<<fixed<<setprecision(2)<<"aver="<<aver
<<fixed<<setprecision(2)<<",median="<<median
<<",mode="<<mode;
return 0;
}
为啥总有一组数据中位数出错,我检查了感觉那一部分应该没写错,帮忙看看哪不对
你把数组排序了,最后求中位数的时候不是以原来的数组了