采用普通的数组进行计算,可能会导致内存超限,可以使用 map ,详细用法。
代码:
#include<stdio.h>
#include<map>
using namespace std;
int main(){
map<int,int>mp;
int m,k;
scanf("%d%d",&m,&k);
for(int i = 0;i < m;i++){
int temp;
for(int j = 0;j < k;j++){
scanf("%d",&temp);
map<int ,int>::iterator it = mp.find(temp);
if(it == mp.end()){
mp[temp] = 1;
}else{
mp[temp] += 1;
}
}
}
for(map<int ,int>::iterator it = mp.begin();it != mp.end();it++){
if(it->second > m * k / 2){
printf("%d",it->first);
break;
}
}
return 0;
}