代码比较简单,直接看代码
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string>
#include<cstring>
#define MAX 1005
using namespace std;
string node[MAX];
bool cmp(string a,string b)
{
if(a.length()==b.length())
return a.compare(b)<1;
return a.length()<b.length();
}
int main()
{
int i,num;
while(cin>>num,num!=0)
{
for(i=0;i<num;i++)
{
cin>>node[i];
}
sort(node,node+num,cmp);
int maxnum=0;
int maxtemp=1;
string chartemp=node[0];
for(i=0;i<num-1;i++)
{
if(node[i].compare(node[i+1])==0)
{
maxtemp++;
}
else
{
maxtemp=1;
}
if(maxtemp>maxnum)
{
maxnum=maxtemp;
chartemp=node[i];
}
}
cout<<chartemp<<endl;
}
return 0;
}
还可以用结构体实现,原理是一样的,就当是熟悉下结构体
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string>
#include<cstring>
#define MAX 1005
using namespace std;
struct Node
{
string color;
}node[MAX];
bool cmp(Node a,Node b)
{
if(a.color.length()==b.color.length())
return a.color.compare(b.color)<1;
return a.color.length()<b.color.length();
}
int main()
{
int i,num;
while(cin>>num,num!=0)
{
for(i=0;i<num;i++)
{
cin>>node[i].color;
}
sort(node,node+num,cmp);
int maxnum=0;
int maxtemp=1;
string chartemp=node[0].color;
for(i=0;i<num-1;i++)
{
if(node[i].color.compare(node[i+1].color)==0)
{
maxtemp++;
}
else
{
maxtemp=1;
}
if(maxtemp>maxnum)
{
maxnum=maxtemp;
chartemp=node[i].color;
}
}
cout<<chartemp<<endl;
}
return 0;
}