首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2013-03-13 
找出数组里面元素出现次数最多的问题/*问题:在一个由自然数1-1000中某些数字所组成的数组中,每个数字可能

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

/*
    问题:
    在一个由自然数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;
}

运行结果为:

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

 

热点排行