c语言求一个数组的众数,众数问题 (C语言代码)

解题思路:

注意事项:

参考代码:

#include

int main()

{

int n,a[1000],b[100],p,j,i,k,m=0,max,sum=0;

scanf("%d",&n);

for(j=0;j

scanf("%d",&a[j]);

//排序:

for(j=0;j

for(k=j;k

if(a[j]>a[k])

{a[n]=a[j];a[j]=a[k];a[k]=a[n];}

//将每个数的个数放入b[]:

for(j=0;j

{

i=0;

for(k=0;k

if(a[j]==a[k])

i++;;

b[m]=i;

m++;

j=j+i;

}

//找出最大值:

max=b[0];

for(j=1;j

if(max

//找出第一个最大值

for(j=0;j

{

if(max==b[j]){i=j;break;}

sum+=b[j];

}

//a[sum]是a数组中众数的第一个数:

printf("%d\n%d\n",a[sum],b[i]);

return 0;

}