——————————————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
",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
",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
",a[q]);

    }
    return 0;
}
原文地址:https://www.cnblogs.com/A-FM/p/5001617.html