Problem U: 零起点学算法91——找出一个数组中出现次数最多的那个元素
Description
找出一个数组中出现次数最多的那个元素
Input
多组输入,请处理到文件结束
每组第一行输入一个整数n(不大于20) 第二行输入n个整数
Output
找出n个整数中出现次数最多的那个整数,(数据保证答案唯一)。
Sample Input
4
1 2 2 3
Sample Output
2
#include<stdio.h>
int main()
{
int n,a[20],b[20]={0};
while(scanf("%d",&n)!=EOF)
{
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(int i=0;i<n;i++)
{
for(int j=i+1;j<n;j++)
{
if(a[i]==a[j])
{
b[i]++;
}
}
}
int m=b[0];
for(int i=1;i<n;i++)
{
if(b[i]>m)
m=b[i];
}
for(int i=0;i<n;i++)
{
if(b[i]==m)
{
printf("%d\n",a[i]);
}
}
}
return 0;
}
总结
1、善于使用镜像数组帮助标记和记录数据。
2、注意循环的使用和变量的数值。