uva_10815-Andy's First Dictionary

来源:岁月联盟 编辑:exp 时间:2012-11-09
[cpp] 
/*就是一个结构体计数加排序*/ 
#include <cstdio> 
#include <cstring> 
#include <iostream> 
#include <algorithm> 
using namespace std; 
 
#define MAXL 2001 
#define MAXC 76 
 
typedef struct{ 
    string name; 
    int num; 
}Country; 
 
char s[MAXC]; 
Country country[MAXL]; 
 
int countrycmp(const void *a, const void *b){ 
    return ((Country const*)a)->name > ((Country const*)b)->name; 

 
int main(int argc, char const *argv[]) 

 
    int cas, sum=0, i, j; 
    string str; 
    scanf("%d",&cas); 
    getchar(); 
    while(cas--){ 
        gets(s); 
        str=""; 
        for(i=0; s[i]!=' '; i++) 
                str += s[i]; 
        str[i]=='/0'; 
        for(i=0; i<sum; i++){ 
            if(str==country[i].name){ 
                country[i].num++; 
                i--; 
                break; 
            } 
        }  www.2cto.com
        if(i==sum) 
            country[sum++].name = str; 
    } 
    qsort(country, sum, sizeof(Country), countrycmp); 
    for(i=0; i<sum; i++){ 
        cout<<country[i].name<<" "<<country[i].num+1<<endl; 
    } 
    return 0;