stl map水过,,,水题继续。。
#include<iostream>
#include<string>
#include<map>
using namespace std;
int main()
{ int n;
while(cin>>n,n)
{ map<string,int> Q;
map<string,int>::iterator p;
for(int i=0;i!=n;++i)
{ string a;
cin>>a;
Q[a]++;
}
int max=0;
string b;
for(p=Q.begin();p!=Q.end();++p)
if(p->second>max)
{ b=p->first;
max=p->second;
}
cout<<b<<endl;
}return 0;
}
法二:
#include<iostream>
#include<string>
#include<string.h>
using namespace std;
char map[1001][16];
int main()
{ int n;
while(cin>>n&&n)
{ memset(map,'\0',sizeof(map));
getchar();
for(int i=0;i!=n;++i)
cin>>map[i];
int p,max=0;
for(int i=0;i!=n;++i)
{ int t=1;
for(int j=i+1;j!=n;++j)
if(strcmp(map[i],map[j])==0) t++;
if(t>max) {max=t;p=i;}
}
cout<<map[p]<<endl;
}return 0;
}