出现次数超过一半的数题解
2026-03-18 17:12:41
发布于:浙江
10阅读
0回复
0点赞
学生版:
#include<bits/stdc++.h>
using namespace std;
int c[110];
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++) {
int x;
cin>>x;
c[x+50]++;
}
bool f=false;
for(int i=0;i<=100;i++) {
if(c[i]>n/2) {
cout<<i-50<<endl;
f=true;
}
}
if(!f) cout<<"no"<<endl;
return 0;
}
老师版:
#include<bits/stdc++.h>
using namespace std;
int c[110];
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++) {
int x;
cin>>x;//x可能是负数
c[x+50]++;//x+50>=0
}
//检查出现的次数
bool f=false;//表示不存在
for(int i=0;i<=100;i++) {
if(c[i]>n/2) {
cout<<i-50<<endl;
f=true;
}
}
if(!f) cout<<"no"<<endl;
return 0;
}
这里空空如也







有帮助,赞一个