大笨鹅小喽啰 2022-04-02 16:02 采纳率: 42.9%
浏览 168

求平均数,中位数和众数 c++

img

img

#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;
}
为啥总有一组数据中位数出错,我检查了感觉那一部分应该没写错,帮忙看看哪不对

  • 写回答

1条回答 默认 最新

  • 浪客 2022-04-02 16:23
    关注

    你把数组排序了,最后求中位数的时候不是以原来的数组了

    评论

报告相同问题?

问题事件

  • 创建了问题 4月2日