标签:mit char tle 决定 结果 sam stdio.h sample out
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
问题描述
比赛一次又一次!看到气球在周围漂浮是多么的兴奋。但要告诉你一个秘密,评委最喜欢的时间是猜测最流行的问题。比赛结束后,他们将计算每一种颜色的气球,并找出结果。
今年,他们决定把这份可爱的工作留给你。
输入
输入包含多个测试用例。每个测试用例以数字N(0 <= 1000)开始,气球的总数分布。接下来的N行包含一种颜色。气球的颜色是由最多15个小写字母组成的字符串。
一个包含N = 0的测试用例终止输入,这个测试用例不被处理
输出
对于每种情况,在单行上打印气球的颜色。它保证每个测试用例都有一个唯一的解决方案。
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 typedef struct { 5 int num; 6 char color[16]; 7 }Color; 8 int main() 9 { 10 Color *str; 11 char s[16]; 12 int n,j,i,max; 13 scanf("%d",&n); 14 while(n!=0) 15 { 16 str=(Color*)malloc(n*sizeof(Color)); 17 for(i=0;i<n;i++) 18 { 19 str[i].num=0; 20 strcpy(str[i].color,"NULL"); //结构数组初始化 21 22 } 23 24 for(i=0;i<n;i++) 25 { 26 scanf("%s",s); 27 for(j=0;j<n;j++) 28 { 29 if(strcmp(s,str[j].color)==0) //先遍历,看是否存在这个颜色,如果有数目++ 30 { 31 str[j].num++; 32 break; 33 } 34 } 35 if(j==n) //如果不存在,从结构数组0开始找,没有颜色的成员,然后赋值 36 { 37 for(j=0;j<n;j++) 38 { 39 if(strcmp(str[j].color,"NULL")==0) 40 { 41 strcpy(str[j].color,s); 42 str[j].num++; 43 break; 44 } 45 } 46 } 47 } 48 max=0; //让MAX作为最多元素下标,遍历对比 49 for(i=1;i<n;i++) 50 { 51 if(str[max].num<str[i].num) 52 max=i; 53 } 54 printf("%s\n",str[max].color); 55 free(str); 56 scanf("%d",&n); 57 } 58 return 0; 59 }
标签:mit char tle 决定 结果 sam stdio.h sample out
原文地址:http://www.cnblogs.com/BOW1203/p/7811125.html