如何用c语言求众数

Python019

如何用c语言求众数,第1张

#include<stdio.h>

int main ()

{ int n,i,j,t,max=0,a[1000][2]={0}

scanf("%d",&n)

for(i=0i<ni++)

  scanf("%d",&a[i][0])

//   printf("OK\n")

for(i=0i<n-1i++)

  for(j=0j<n-1-ij++)

    if(a[j][0]>a[j+1][0])

    { t=a[j][0]

      a[j][0]=a[j+1][0]

      a[j+1][0]=t

    }

for(i=0i<n)

{ a[i][1]=1

  for(j=i+1a[j][0]==a[i][0]j++)

    a[i][1]++

  if(a[i][1]>max)max=i

  i=j

}

for(i=0i<ni++)

  if(a[i][1]==a[max][1])

  printf("%d ",a[i][0])

return 0

}

int

a[n],A[n]

不能这样定义的吧。。。

A[a[i]]++

这句有问题!

若输入的a[i]大于n,则超出了A的下标范围

访问数组超范围的下标,就会Runtime

Error。。。