您的位置:首页 > 其它

找出数组中重复次数最多的元素并打印

2013-05-06 17:31 381 查看
找出数组中重复次数最多的元素并打印

思路:对于这道题应该先进行排序,然后遍历。

代码:
#include<stdio.h>
#include<stdlib.h>

int int_compare(const void *x1, const void *x2)
{
int* a=(int*)x1;
int* b=(int*)x2;
return (*a-*b);
}

void findremax(int a[],int n,int *m,int *c)
{
int index,count,maxc,i;
index=0;
count=1;
maxc=count;
for(i=1;i<n;i++){
if(a[i]==a[i-1])
count++;
else{
if(count>maxc){
maxc=count;
index=i-1;
}
count=1;
}
}
if(count>maxc){
maxc=count;
index=i-1;
}
*m=index;
*c=maxc;
}
int main()
{
int maxindex,c;
int a[]={1,1,2,2,3,3,3,3,4,5,6,7,7,7,7,7,7};
int n=(sizeof(a))/sizeof(a[0]);
maxindex=0;
c=0;
qsort(a,n,sizeof(a[0]),int_compare);
findremax(a,n,&maxindex,&c);
printf("%d appears %d times.\n",a[maxindex],c);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐