题目 2973: 出现次数超过一半的数
#include<iostream>
using namespace std;
int main()
{
int n,a[1005],b[1005],ch=0;
double av;
cin>>n;
av=(double)n/2.0;
//cout<<av<<endl;用于测试数组的一半是整数还是浮点数
for(int i=0;i<n;i++)
{
cin>>a[i];
b[a[i]]++;
}
for(int i=-49;i<50;i++)
{
if(b[i]>av)
{
cout<<i<<" ";
ch++;
}
}
if(ch==0)
cout<<"no";
return 0;
}
注意点:
1.b[a[i]]相当于把a[i]的那个数字所在数组的位置++
2.然后进行ch++,这个代表是检查,一个数组当中是否存在数字是数组的一半多,如果不存在要