/*
模式计算:在给定的数字列表中最经常出现的一个数值称为模式.例如,对于5,1,5,7,6,5,7来说,
模式是5.
*/
#include<stdio.h>
#define NR 100
int PresortMode(int *a,int n)
{
int i=0,maxlen=0,maxvalue,curvalue,curlen;
while(i<n)
{
curlen=1;
curvalue=a[i];
while((i+curlen)<n && a[i+curlen]==curvalue)
{
curlen++;
}
if(curlen>maxlen)
{
maxlen=curlen;
maxvalue=curvalue;
}
i+=curlen;
}
return maxvalue;
}
int main()
{
int a[NR],n,i;
printf("Please input the len of the array:");
scanf("%d",&n);
printf("/nPlease input the value of the array:/n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("The modevale of the array if: %d/n", PresortMode(a,n));
return 0;
}