Description
输入10个数,找出出现次数最多的数 (如果多个并列,则按数字出现顺序分别输出)
比如:
输入:1 5 27 33 24 1 27 18 1920
输出:
1 27
输入: 3 21 44 5 21 9 21 2 80
输出:
21
Input
1 1 3 4 5 6 7 8 9 0
Output
1
#include<stdio.h>
/*输入10个数,找出出现次数最多的数 */
//遍历记录数组,返回-1所照数字不存在,存在则返回下标
int bl(int A[],int len,int x)
{
int i,j;
for(i=0;i<len;i++)
{
if(A[i]==x)
{
return i;
}
}
return -1;
}
int main()
{
int i,j;
int re[10]={0};//记录输入的数字中不重复的数字
int flag[10]={0};//记录重复的个数
int arr[10];//保存输入的数字
int count=0;//记录数组长度
int max=0;//最大重复个数
for(i=0;i<10;i++)
{
scanf("%d",&arr[i]);
}
for(i=0;i<10;i++)
{
if(bl(re,count,arr[i])==-1)
{
re[count]=arr[i];
flag[count]++;
count++;
}else{
flag[bl(re,count,arr[i])]++;
}
}
for(i=0;i<count;i++)
{
if(flag[i]>max)
{
max=flag[i];
}
}
for(i=0;i<count;i++)
{
if(flag[i]==max)
{
printf("%d\n",re[i]);
}
}
return 0;
}