//Problem:hdu1004 //Data:2011/10/30 #include <iostream> using namespace std; //颜色结构,num用来计算每种颜色出现的次数 struct Color{ int num; char color[16]; }; Color input[1000] = {0,""}; //按降序排序 int int_cmp(const void *a, const void *b) { return *(int *)b - *(int *)a; } int main() { //freopen("E:\\in.txt","r",stdin); int n,i,j; char temp[16]; while(cin>>n,n!=0) { int count=0; bool exist; for(i=0; i<n; i++) { //每读入一个颜色,就判断是否之前出现过,如果出现过,就把exist标记为true,并把计数+1,然后立即break出循环 cin >> temp; exist = false; for(j=0; j<count; j++) { if(strcmp(temp,input[j].color) == 0) { exist = true; input[j].num++; break; } } //如果不存在,就把这种颜色加到数组中去,并使计数初始为0 if(!exist) { //input[count].color = temp; strcpy(input[count].color,temp); input[count].num = 0; count++; } } //对数组进行快速排序,排在第一个的就是数量最多的颜色,最后打印 qsort(input,count,sizeof(Color),int_cmp); cout << input[0].color << endl; } return 0; }