C语言字符串问题,正确率是25%

img


能告诉我哪里出错了吗?
运行结果都对,但是不过。
内容不够我水一下

img

#include<stdio.h>
#include<string.h>
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF&&n)
    {
        char g[15][20];
        char t[20];
        getchar();
        for(int i=0;i<n;i++)
        {
            gets(g[i]);
        }
        int max=-1,cnt;
        for(int i=0;i<n;i++)
        {
            cnt=0;
            for(int j=0;j<n;j++)
            {
                if(strcmp(g[i],g[j])==0)
                {
                    cnt++;
                }
            }
            if(cnt>max)
            {
                max=cnt;
                strcpy(t,g[i]);
            }
        }
        puts(t); 
    }
    return 0;
}

它应该是要你 都输入完了,最后才把结果输出出来,这个时候你就需要存入字符串数组里了

img

参考如下:

#include<stdio.h>
#include<string.h>
int main()
{
    int n, m=0;
    char s[10][20];
    while(scanf("%d",&n)!=EOF&&n)
    {
        char g[15][20];
        char t[20];
        getchar();
        for(int i=0;i<n;i++)
        {
            gets(g[i]);
        }
        int max=-1,cnt;
        for(int i=0;i<n;i++)
        {
            cnt=0;
            for(int j=0;j<n;j++)
            {
                if(strcmp(g[i],g[j])==0)
                {
                    cnt++;
                }
            }
            if(cnt>max)
            {
                max=cnt;
                strcpy(t,g[i]);
            }
        }
        strcpy(s[m++], t);
    }

    for (int i = 0; i < m; i++) 
    {
        printf("%s\n", s[i]);
    }

    return 0;
}