c++输入十个数,输出出现次数最多的数,如果多个并列,按出现顺序输出

2025-05-13 11:34:40
推荐回答(1个)
回答(1):

给你个代码,不过没有验证输入的合法性:

#include
#include 
#include 
using namespace std;
struct numcnt
{
int n;
int cnt;
};
bool cmp(const numcnt& nc1, const numcnt& nc2)
{
return nc1.cnt>nc2.cnt;
}
int main()
{
int cnt=10;
int n,f;
vector vn;
vector::iterator it;
for (int i=0; i {
cin>>n;
f=0;
for (it=vn.begin(); it {
if (n==it->n)
{
++it->cnt;
f=1;
break;
}
}
if (f)
continue;
numcnt t;
t.n=n;
t.cnt=1;
vn.push_back(t);
}
sort(vn.begin(),vn.end(),cmp);
int max=vn[0].cnt;
for (it=vn.begin(); it {
if (it->cnt==max)
cout<n<<":  "<cnt<<"次"< }
return 0;
}