以下是WA的代码:
#include<iostream>
#include<string>
using namespace std;
int main()
{
int i,j,n;
cin>>n;
int max=0;
while(n!=0)
{
string str[1000],color;
for(i=0;i<1000;i++)
str[i]=" ";
int num[1000]={0};
for(i=1;i<=n;i++)
{
cin>>color;
for(j=1;j<i;j++)
{
if(str[j]==color)
{
num[j]++;
break;
}
}
if(i==j)
{
str[i]=color;
num[i]++;
}
}
int max=0;
for(i=1;i<=n;i++)
{
if(num[i]>num[max])
{
max=i;
}
}
cout<<str[max]<<endl;
max=0;
cin>>n;
}
return 0;
}
以下是AC的代码:
#include<iostream>
#include<string>
using namespace std;
int main()
{
int i,j,n;
cin>>n;
int max=0;
while(n!=0)
{
string str[1001],color;
for(i=0;i<1001;i++)
str[i]=" ";
int num[1001]={0};
for(i=1;i<=n;i++)
{
cin>>color;
for(j=1;j<i;j++)
{
if(str[j]==color)
{
num[j]++;
break;
}
}
if(i==j)
{
str[i]=color;
num[i]++;
}
}
int max=0;
for(i=1;i<=n;i++)
{
if(num[i]>num[max])
{
max=i;
}
}
cout<<str[max]<<endl;
max=0;
cin>>n;
}
return 0;
}
对与错其实只差1,只要把1000改为1001就行啦。我觉得要做这个题首先要知道string数组的用法,剩下的就是数组的存放技巧啦