1. 程式人生 > >T1186 出現次數超過一半的數(#Ⅱ- 2)

T1186 出現次數超過一半的數(#Ⅱ- 2)

【題目描述】

給出一個含有n(0 < n ≤ 1000)個整數的陣列,請找出其中出現次數超過一半的數。陣列中的數大於-50且小於50。

【輸入】

第一行包含一個整數n,表示陣列大小;
第二行包含n個整數,分別是陣列中的每個元素,相鄰兩個元素之間用單個空格隔開。

【輸出】

如果存在這樣的數,輸出這個數;否則輸出no。

【輸入樣例】

3
1 2 2

【輸出樣例】

2

【源程式】

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
    int a[101]={0};
    int n,b;
    int i;
    bool flag=false;

    cin>>n;
    for(i=0;i<n;i++)
    {
        cin>>b;
        a[b+50]++;
    }
    for(i=0;i<100;i++)
        if(a[i]>=(n+1)/2)
        {
            flag=true;
            cout<<i-50<<endl;
        }
    if(flag==0)
        cout<<"no";
    cout<<endl;
    return 0;
}