从一有序数组中,找到一出现次数最多的数

来源:互联网 发布:淘宝入驻知名品牌 编辑:程序博客网 时间:2024/05/17 01:02

例如数组int a[]={1,2,2,3,3,3,4,5,5,6};1出现1次,2出现2次,3出现3次,4出现1次,5出现2次,6出现一次。出现次数最多3次,数字为3。求怎么找到数组中出现次数最多的数呢???

#include<stdio.h>//法一void plateau(int a[],int n){int now=1,max=1,num=a[0],i=1;for(;i<n;++i){if(a[i]==a[i-1])now++;elsenow=1;if(max<now){max=now;num=a[i];}}printf("the number %d occured %d times!\n",num,max);}//法二void plateau(int a[],int n){int length=1;for(int i=1;i<n;++i){if(a[i]==a[i-length])length++;}printf("the number  occured %d times!\n",length);}int main(){int a[]={1,2,2,3,3,3,4,5,5,6};int n=sizeof(a)/sizeof(int);plateau(a,n);}