21xrx.com
2024-05-20 16:44:27 Monday
登录
文章检索 我的文章 写文章
C++如何找出数组中出现次数最多的元素?
2023-07-06 22:34:53 深夜i     --     --
C++ 数组 出现次数 最多 元素

在C++中,找出数组中出现次数最多的元素可以通过以下简单的步骤来完成:

第一步,排序

首先,需要将数组按照升序或降序进行排序。这可以使用STL中的sort函数来完成。例如,按照升序排列可以使用以下代码:

sort(arr, arr + n);

其中,arr是数组名称,n是数组的大小。

第二步,找出出现次数最多的元素

一旦数组排序完成,就可以查找出现次数最多的元素。可以使用一个变量来跟踪目前出现次数最多的元素,并使用另一个变量来跟踪该元素的出现次数。然后,遍历排序后的数组,逐个元素进行比较,如果找到更高次数的元素,则更新变量。

下面是示例代码:

int max_element_count = 1; // 记录目前出现最多的元素的出现次数

int current_count = 1; // 记录当前元素的出现次数

int max_element = arr[0]; // 记录目前出现最多的元素

for (int i = 1; i < n; i++)

{

  if (arr[i] == arr[i - 1])

  {

    current_count++;

  }

  else

  {

    if (current_count > max_element_count)

    {

      max_element_count = current_count;

      max_element = arr[i - 1];

    }

    current_count = 1;

  }

}

如果数组中只有一个元素,那么该元素就是出现次数最多的元素。

完整代码:

#include

#include

using namespace std;

int main()

{

  int arr[10] = 5;

  int n = 10;

  sort(arr, arr + n);

  int max_element_count = 1;

  int current_count = 1;

  int max_element = arr[0];

  for (int i = 1; i < n; i++)

  {

    if (arr[i] == arr[i - 1])

    {

      current_count++;

    }

    else

    {

      if (current_count > max_element_count)

      {

        max_element_count = current_count;

        max_element = arr[i - 1];

      }

      current_count = 1;

    }

  }

  if (current_count > max_element_count)

  {

    max_element_count = current_count;

    max_element = arr[n - 1];

  }

  cout << "出现次数最多的元素为:" << max_element << endl;

  cout << "出现次数为:" << max_element_count << endl;

  return 0;

}

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复