排序检索 10420-List of conquests

来源:互联网 发布:外国网友评论中国网络 编辑:程序博客网 时间:2024/06/11 12:35

题目大意:统计国家名字出现的次数,按照字母顺序输出

解题过程:一次AC

正确代码:

# include <cstdio># include <cstdlib># include <cstring># include <ctype.h># include <string>//# define LOCALusing namespace std; struct country{char name[75];//char qname[75];int num;country(){strcpy(name,"");//strcpy(qname,"");num=0;}void update(char* s){strcpy(name,s);//for(int i=0;i<strlen(s);i++){//qname[i]=tolower(s[i]);//}//qname[strlen(s)]='\0';num++;}};int cmpchar(const void*a,const void*b){return strcmp(*(char(*)[75])a,*(char(*)[75])b);}int cmpcountry(const void*a,const void*b){return strcmp((*(country*)a).name,(*(country*)b).name);}int main(){# ifdef LOCALfreopen("in.txt","r",stdin);freopen("out.txt","w",stdout);#endifint n;scanf("%d\n",&n);char(*name)[75]=new char[n][75];for(int i=0;i<n;i++){scanf("%s%*[^\n]%*c",name[i]);}qsort(name,n,sizeof(name[0]),cmpchar);int numofcount=0;country* count=new country[n];count[numofcount++].update(name[0]);for(int i=1;i<n;i++){//printf("%s %s\n",name[i-1],name[i]);if(strcmp(name[i-1],name[i])!=0){count[numofcount++].update(name[i]);}else{count[numofcount-1].num++;}}for(int i=0;i<numofcount;i++){printf("%s %d\n",count[i].name,count[i].num);}return 0;}

0 0
原创粉丝点击