给出一个含有n(0 < n <= 1000)个整数的数组,请找出其中出现次数超过一半的数。
数组中的数大于-50且小于50。
输入第一行包含一个整数n,表示数组大小;第二行包含n个整数,分别是数组中的每个元素,相邻两个元素之间用单个空格隔开。输出如果存在这样的数,输出这个数;否则输出no。样例输入31 2 2样例输出2本题较简单,直接附上AC代码。#include<stdio.h>int main(){ int n,a[10001]={0},i,b[10001]={0},t=0; scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&a[i]); for(i=1;i<=n;i++) { b[a[i]]++; } for(i=1;i<=n;i++) { if(b[a[i]]>n/2) { PRintf("%d",a[i]); t=1; break; } } if(t==0) printf("no"); return 0;}
新闻热点
疑难解答