解题思路:首先定义结构体,然后比较分数大小,遇到分数相同的,再比较字符串大小
因为是选择排序,每次循环,都可以得到一个在最前面的下标,依次进行即可。
注意事项:

参考代码:#include <stdio.h>

#include <string.h>

typedef struct 

{

    char name[20];

    int score;

}stu;

    stu g[30];

int main()

{

    stu t;

    int i,j,k,n;

    scanf("%d",&n);

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

    {

         scanf("%s %d",g [i].name,&g [i].score);

    }

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

    {

        k=i;

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

        {

           if(g[j].score>g[k].score) 

               k=j;

           else if(g[j].score==g[k].score) 

           {

               if(strcmp(g[j].name,g[k].name)<0)

               k=j;

           } 

        }   

        if(k!=i)  

        {

           t=g[i];

           g[i]=g[k];

           g[k]=t;

        } 

        

    }

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

    {

      

        printf("%s %d",g[i].name,g[i].score);

        

             printf("\n");

    }    

    return 0;    

}

点赞(1)
 

0.0分

1 人评分

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

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

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

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

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

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

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

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

评论列表 共有 0 条评论

暂无评论