您的位置:首页 > 其它

找出数组里面元素出现次数最多的问题

2013-04-12 22:55 507 查看
/*

问题:

在一个由自然数1-1000中某些数字所组成的数组中,每个数字可能出现零次或者多次。

设计一个算法,找出出现次数最多的数字。

*/


<代码示例>

#include<stdio.h>

void search(int a[],int len)

{

int i,index,max = 0;

int temp[1000] = {0}; //定义一个大小为1000个元素的数组,初值均设为0

for(i = 0; i < len; i++)

{

index = a[i] - 1;

temp[index]++; //哪个元素出现的最多,导致temp[index]值最大

}

for(i = 0; i < 1000; i++) //遍历整个数组,找出值最大的元素

{

if(max < temp[i])

{

max = temp[i];

}

}

for(i = 0; i < 1000; i++) //遍历整个数组,输出值最大元素的下标的值加1

{

if(max == temp[i])

{

printf("%d\n",i + 1); //即元素出现次数最多的

}

}

}

int main()

{

int array[ ] = {1,1,2,3,4,5,6,6,6,7,7,7,7,7,7};

search(array,sizeof(array)/sizeof(*array));

return 0;

}

运行结果为:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐