坚果


私信TA

用户名:dotcpp0615334

访问量:4699

签 名:

等  级
排  名 118
经  验 7884
参赛次数 0
文章发表 43
年  龄 0
在职情况 学生
学  校 xx
专  业

  自我简介:

解题思路:

注意事项: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 人评分

  评论区

  • «
  • »