——————————————1004————————————————题水,人更水。
//主要有,思路有但是在实施的过程中,在小步骤的进行中思路混乱。 // 数组b没有初始化导致如果第一个if条件语句不通过的话第二个条件语句的执行就会出现问题,还有第二个if语句在判断之后没有进行数据的更新导致其后不可用 #include<stdio.h> #include<string.h> int max(int x,int y); int main() { char a[1111][30]; int q,i,j,m,s,n,b[111]; while(scanf("%d",&n)!=EOF) { if(n==0) break; s=0; memset(b,0,sizeof(b)); for(i=0;i<n;i++) scanf("%s",a[i]); for(i=0;i<n;i++) { for(b[-1]=0,b[0]=0,j=0;j<n;j++) { if(strcmp(a[j],a[i])==0) b[i]=b[i]+1; if(b[i]>=b[i-1]) q=i; } } //for(i=0,m=b[0];i<n;i++) // { // m=max(m,b[i]); // } printf("%s\n",a[q]); } } //int max(int x,int y) //{ // if(x>=y) // return x; // else // return y; //}
/*记住学长给你说的,做题不是目的,做题只是辅助你熟悉书本上所讲解的知识,和模拟实际问题而已。
你的终点还是应该放在书本上,多看书,深入了解其思想,做题练手,不要丢三落四。就行。么么,加油!
*/
//用数组储存多个字符串的方法 ,么么书上有,你要多看看数。别一直刷题了,还有那些很简便的用法。回去把书带来
1 /*这是正确的答案。*/ 2 #include<stdio.h> 3 #include<string.h> 4 int main() 5 { 6 char a[2222][20]; 7 int n; 8 while(scanf("%d",&n),n) 9 { 10 int b[1111]={0},i,j,s,max=0; 11 for(i=0;i<n;i++) 12 { 13 scanf("%s",a[i]); 14 } 15 for(i=0;i<n;i++) 16 { 17 for(j=0;j<n;j++) 18 { 19 if(strcmp(a[i],a[j])==0) 20 b[i]=b[i]+1; 21 } 22 if(b[i]>max) 23 { 24 s=i; 25 max=b[i]; 26 } 27 } 28 printf("%s\n",a[s]); 29 } 30 }
___________________________________________________________第二次做______________________________________________
表现是对该题 仍然 做得很慢......刷题太快的缘故....放慢节奏以后
#include<stdio.h> #include<string.h> int main() { char a[2222][20]; int q,max,i,t,j; while(scanf("%d",&t),t) { memset(a,0,sizeof(a)); int b[1111]={0}; for(i=0;i<t;i++) { scanf("%s",a[i]); } for(max=0,i=0;i<t;i++) { for(j=0;j<t;j++) { if(strcmp(a[i],a[j])==0) { b[i]=b[i]+1; } if(b[i]>max) { max=b[i]; q=i; } } } printf("%s\n",a[q]); } return 0; }