#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
pair<char[300],int> list[10000];
int main()
{
char a[300],b[20000];
int n;
cin >> n;
for(int d=1; d<=n; d++)
{
list[d].second = 0;
}
int k=0;
for(int d=1; d<=n; d++)
{
cin >> a;
bool masuk=false;
for(int e=1; e<=k;e++)
{
if (strcmp (a,list[e].first) == 0)
{
masuk = true;
list[e].second++;
break;
}
}
if (!(masuk))
{
k++;
strcpy(list[k].first,a);
list[k].second++;
}
cin.getline(b,256);
}
sort(list+1,list+k+1);
for(int e =1; e<=k; e++)
{
cout << list[e].first << " " << list[e].second << endl;
}
}
如果我输入
3
Spain Donna Elvira
England Jane Doe
Spain Donna Anna
我希望它输出
England 1
Spain 2
但它输出
Spain 2
England 1
不是 sort 假设先排序吗?但它似乎不起作用。我在 Dev C++ 上尝试了这个并且它输出正确,但是当在 ideone 上尝试这个时它输出错误
请帮助我,对不起我的英语不好。