C++ 查找长度为n的数组中重复次数最多的元素 const int N=10; int main() { int arr[N]={4,4,6,4,6,6,7,9,9}; 对于(int i=0;i
)C++ 查找长度为n的数组中重复次数最多的元素 const int N=10; int main() { int arr[N]={4,4,6,4,6,6,7,9,9}; 对于(int i=0;i,c++,arrays,C++,Arrays,) const int N=10; int main() { int arr[N]={4,4,6,4,6,6,7,9,9,9}; for (int i = 0; i < N; i++) for (int j=i+1; j<N; j++) { if (arr[i]==arr[j]) cout << arr[i]; } retur
const int N=10;
int main()
{
int arr[N]={4,4,6,4,6,6,7,9,9,9};
for (int i = 0; i < N; i++)
for (int j=i+1; j<N; j++)
{
if (arr[i]==arr[j])
cout << arr[i];
}
return 0;
}
然后迭代并找到重复次数最多的元素的计数,您可以这样做:
sort(arr, arr + n);
int-maxCnt=0;
int curCnt=1;
对于(int i=1;i
然后,当curCnt==maxCnt输出数时,再次迭代累积curCnt
int maxCnt = 0;
int curCnt = 1;
for (int i = 1; i < n; i++) {
if (arr[i] == arr[i - 1]) curCnt++;
else
{
maxCnt = max(maxCnt, curCnt);
curCnt = 1;
}
}
maxCnt = max(maxCnt, curCnt);
curCnt=1;
对于(int i=1;i
对未知数组大小(N)使用“基于范围的循环”
使用std::map
计算每个元素的计数
代码如下:
curCnt = 1;
for (int i = 1; i < n; i++) {
if (curCnt == maxCnt) cout << arr[i - 1] << ' ';
if (arr[i] == arr[i - 1]) {
curCnt++;
}
else curCnt = 1;
}
if (curCnt == maxCnt) cout << arr[n - 1] << endl;
#包括
#包括
使用名称空间std;
int main()
{
常量int arr[]{4,4,6,4,6,6,7,9,9};
//获取每个元素的计数。
地图元素计数;
用于(施工自动和电气:arr)
{
元素计数[e]+=1;
}
//获得最高计数。
int highestCount=0;
用于(常数自动和e:elementCount)
{
无法将它们存储在std::set
中,然后输出集合的内容?因此,请为(…){inventory[arr[i]+;}
创建一个清单。(计算每个值显示的数量),然后对清单进行排序并挑选出顶部的X个元素。可能重复??请参阅:@MarcB的注释是正确的方法,如果数组中的数字范围较小。数组中的数字范围是多少?
#include <map>
#include <iostream>
using namespace std;
int main()
{
const int arr[]{ 4,4,6,4,6,6,7,9,9,9 };
// Get count for each element.
map<int, int> elementCount;
for (const auto& e : arr)
{
elementCount[e] += 1;
}
// Get the highest count.
int highestCount = 0;
for (const auto& e : elementCount)
{
cout << e.first << " " << e.second << endl;
if (e.second > highestCount)
{
highestCount = e.second;
}
}
// Get the elements with the hightest count.
cout << endl << "Elements with the hightest count:" << endl;
for (const auto& e : elementCount)
{
if (e.second == highestCount)
{
cout << e.first << " ";
}
}
cout << endl;
return 0;
}