这道题目也不难,就是字符串的查找与排序,用一个结构体就很简单了;
#include<stdio.h>
#include<string.h>
struct list
{
char name[2000];
int number;
}s[100000],ss;
int num;
int main()
{
int i,j,n,T;
char str[10000],str1[10000];
scanf("%d%*c",&T);
num=0;
while(T--)
{
gets(str);
n=strlen(str);
for(i=0;i<n;i++)
{
if(str[i]==' ')
{
str1[i]='\0';
break;
}
str1[i]=str[i];
}
for(i=0;i<num;i++)
{
if(strcmp(s[i].name,str1)==0)
{
s[i].number++;
break;
}
}
if(i==num)
{
strcpy(s[i].name,str1);
s[i].number=1;
num++;
}
for(i=0;i<num;i++)
for(j=0;j<num;j++)
{
if(strcmp(s[i].name,s[j].name)<0)
{
ss=s[i];
s[i]=s[j];
s[j]=ss;
}
}
}
for(i=0;i<num;i++)
{
printf("%s %d\n",s[i].name,s[i].number);
}
return 0;
}