背景:就是对结构体不熟,竟然有这道对结构体数组考察的题,太开心!感冒终于好了!
学习:
1.对于要反复使用的数组一定要反复初始化!
2.深刻理解了结构体是一种自定义的把各种基本数据类型结合起来的数据类型,甚至可以定义他的数组。
3.用scanf输入字符串时,键盘缓冲区会存在一个\n,对下次字符串读取产生干扰,以前用一个getchar()消化它,现在直接scanf(“%s*%c”,str)就可。
4.既然又把'\0'写成'/0'!!!!!!
#include<stdio.h> #include<string.h> struct ballon { char str[16]; int count; }b[200]; int main(void) { int n; while(scanf("%d*%c",&n)&&n) { memset(b,0,sizeof(b)); for(int i=0;i<n;++i) { int key=1; char a[16]; memset(a,'\0',16); scanf("%s",&a); for(int j=0;j<200;++j)/*Èç¹ûÒѾ´æÔÚ¸ÃÑÕÉ«£¬ÑÕÉ«Êý¼ÓÒ»*/ { if(strcmp(b[j].str,a)==0) { b[j].count++; key=0; break; } } if(key)/*Èç¹û²»´æÔÚ¸ÃÑÕÉ«£¬°Ñ¿ªÍ¨Ò»¸öδ¼¤»î½á¹¹Ì壬²¢¼ÆÊý¼ÓÒ»*/ { for(int j=0;j<200;++j) { if(b[j].count==0) { b[j].count++; for(int ll=0;ll<16;ll++) { b[j].str[ll]=a[ll]; } break; } } } } int max=0,l; for(int k=0;k<200;++k) { if(b[k].count>max) { max=b[k].count; l=k;/*ÕÒ³ö×î´ó¼ÆÊýµÄÑÕɫϱê*/ } } printf("%s\n",b[l].str); } return 0; }