首页 > 学院 > 开发设计 > 正文

出现次数超过一半的数

2019-11-10 20:19:12
字体:
来源:转载
供稿:网友
总时间限制: 1000ms 内存限制: 65536kB描述

给出一个含有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;} 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表