链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
题号:NC22222
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
题目描述
给你n个数,有一个数的出现次数超过一半,请找出这个数。
输入描述:
输入两行。 第一行包含一个整数n 第二行包含n个整数ai 1≤n≤1000,1≤ai≤1e9
输出描述:
输出一行,包含一个整数。
示例1
输入
5
1 2 2 3 2
输出
2
示例2
输入
5
1 1 2 2 2
输出
2
示例3
输入
5
1 1 1 2 2
输出
1
答案
#include <stdio.h>
int main()
{
int n,i,biaozhi=0,j;
scanf("%d",&n);//输入n个数
int z[n]; //定义一个可以放下n个数的数组
for(i=0;i<n;i++)
{
scanf("%d",&z[i]);//将n个数放入我们创建好的数组中
}
for(i=0;i<n;i++)
{
biaozhi=0;
for(j=0;j<n;j++)
{
if(z[i]==z[j])//两个for循环的作用是选出相同数的个数
{
biaozhi+=1;//找到相同数之后,让标志加1
if(biaozhi>n/2)
{
printf("%d",z[i]);
return 0;
}
}
}
}
}