描述
给出一个含有n(0 < n <= 1000)个整数的数组,请找出其中出现次数超过一半的数。
数组中的数大于-50且小于50。
输入第一行包含一个整数n,表示数组大小;
第二行包含n个整数,分别是数组中的每个元素,相邻两个元素之间用单个空格隔开。输出如果存在这样的数,输出这个数;否则输出no。样例输入
3 1 2 2
样例输出
2
来源习题(13-6)
1 #include <cstdio> 2 using namespace std; 3 int a[1100],n,i=0,b[120]; 4 int main() 5 { 6 scanf("%d",&n); 7 while(i<n) 8 { 9 scanf("%d",&a[i]); 10 b[a[i]+50]++; 11 i++; 12 } 13 for(i=0;i<110;i++) 14 if(b[i]>n/2) 15 { 16 printf("%d",i-50); 17 return 0; 18 } 19 printf("no"); 20 return 0; 21 22 23 }
原文:http://www.cnblogs.com/zby-ccsygz/p/6275152.html