解题思路:

注意事项:scanf("%d\n",&n);只有这样写是对的,如果写成scanf("%d",&n);getchar();//用getchar读取换行符是错的,不知道为什么,希望有大神指导

参考代码:

#include<stdio.h>

#include<string.h>

void sorting(char str1[][20],int n)

{

int i,j,k;

char t[20];

     for(i=0;i<n-1;i++)

     {

         for(j=0;j<n-1-i;j++)

         {

             if(strcmp(str1[j],str1[j+1])>0)

                 {

                 strcpy(t,str1[j]);

                 strcpy(str1[j],str1[j+1]);

                 strcpy(str1[j+1],t);

                 }

          }

     }

}

//字母升序 

int main()

{

     int n;

     scanf("%d\n",&n);//scanf输出时加上 \n ,就可以把缓冲区的\n,提前读走 

     int i,a[1000]={0};

     char str[1000][20];

     for(i=0;i<n;i++)

     {

          gets(str[i]); 

     }

     sorting(str,n);//先排序再统计 

     int j,k,max=-1;

     for(i=0;i<n-1;i++)

     {

         for(j=i+1;j<n;j++)

         {

         if(strcmp(str[i],str[j])==0)

         {

         a[i]++;//数量的下标与颜色的下标相同 

         for(k=j;k<n-1;k++)

         {

         strcpy(str[k],str[k+1]);//删除记录过的 

         }

         j--;

         n--;

     }

     }

     if(a[i]>max)

     {

         max=a[i];

     }

}

     for(i=0;i<n;i++)

     {

         if(a[i]==max)//如果最大的相同 

         {

             printf("%s\n",str[i]);

         }

     } 

return 0;

 } 


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论