求平均值/众数/中位数,想知道哪里错了


#include
int main()
{
  int count=0;
  double average=0;
  int array[12];
  int numble[40];
  int sum=0;
  for(int i=0;i<40;i++)//求平均值!
  {
      scanf("%d",&numble[i]);
      count++;
      sum+=numble[i];
      //求众数
      array[numble[i]]++;
  }
  average=(sum/(1.0*count));
  int max=array[0];//求众数!
  int mass=0;
  for(int i=0;i<12;i++)
  {
      if(array[i]>max)
      {
          max=array[i];
          mass=i;
      }
  }
  //求中位数(冒泡排序)
  for(int i=0;i<39;i++)
  {
      for(int j=0;j<39-i;j++)
      {
          if(numble[i]>=numble[i+1])
          {
              int temp=numble[i];
              numble[i]=numble[i+1];
              numble[i+1]=temp;
          }
      }
  }
  double middle=((numble[19]+numble[20])/2.0);
  printf("%lf %lf %d",average,middle,mass);
}

求众数应该是遍历数组统计个数啊

求众数那里错了吧,只有12个长度,万一你输入50呢,array[50]不就爆栈了