题目
题目描述
给出一个含有n(0 < n ≤ 1000)个整数的数组,请找出其中出现次数超过一半的数。数组中的数大于-50且小于50。
输入
第一行包含一个整数n,表示数组大小;
第二行包含n个整数,分别是数组中的每个元素,相邻两个元素之间用单个空格隔开。
输出
如果存在这样的数,输出这个数;否则输出no。
样例输入
3
1 2 2
样例输出
2
我的代码
#include<iostream>
#include<cstdio>
using namespace std;
int t[110]={0};
int a;
int b;
int main()
{
cin>>a;
int q;
for(int i=1;i<=a;i++)
{
cin>>b;
if(b>=0)
{
q=b+51;
t[q]++;
}
if(b<0)
{
q=b+51;
t[q]++;
}
}
int i;
int book=a/2;
for(i=1;i<=a;i++)
{
if(t[i]<book)
{
if(i<51)
{
cout<<'-'<<i<<' ';
break;
}
else
{
cout<<i<<' ';
break;
}
}
}
return 0;
}
大佬们,求求你们了,帮我讲一下
我的测试结果不论如何都是“-1”
QWQ