【违规紫衫】求助1道站外题
  • 板块学术版
  • 楼主NCO_Dongfeng_MS
  • 当前回复7
  • 已保存回复7
  • 发布时间2021/10/13 13:39
  • 上次更新2023/11/4 03:55:41
查看原帖
【违规紫衫】求助1道站外题
522847
NCO_Dongfeng_MS楼主2021/10/13 13:39

题目

题目描述

给出一个含有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

2021/10/13 13:39
加载中...