杭电1004
1 #include<stdio.h> 2 #include<string.h> 3 4 char a[1005][20]; 5 int num[1005]; 6 7 int find(int); //查找最多的颜色位置 8 int cpy(char a[],char b[]); //对比2个颜色是否相同 9 int lenth(char a[]); //计算字符数组长度 10 11 int main() 12 { 13 int i,n,ans; 14 while(~scanf("%d",&n)&&n) 15 { 16 memset(num,0,sizeof num); 17 memset(a,0,sizeof a); 18 for(i=0; i<n; ++i) 19 { 20 scanf("%s",a[i]); 21 ans=find(i); 22 } 23 printf("%s\n",a[ans]); 24 } 25 } 26 27 int find(int x) 28 { 29 int i,k; 30 for(i=0; i<x; ++i) 31 if(cpy(a[i],a[x])) 32 { 33 ++num[i]; 34 break; 35 } 36 if(i==x) 37 ++num[i]; 38 for(i=k=0; i<=x; ++i) 39 if(num[i]>num[k]) 40 k=i; 41 return k; 42 } 43 44 int cpy(char a[],char b[]) 45 { 46 int lena,lenb,i; 47 lena=lenth(a); 48 lenb=lenth(b); 49 if(lena==lenb) 50 { 51 for(i=0; i<lena; ++i) 52 if(a[i]!=b[i]) 53 break; 54 if(i!=lena) 55 return 0; 56 else 57 return 1; 58 } 59 else 60 return 0; 61 } 62 63 int lenth(char a[]) 64 { 65 int i=0; 66 while(a[i]!='\0') 67 ++i; 68 return i; 69 }