注意事项: 不止一组输入!!不止一组输入!!!

                也就是说输入其实是:

                 3

                xxxx

                xxxx

                xxxx


                5

                xxxxx

                xxxx

                xxxx

                xxxx

                xxxx              


参考代码:

#include<stdio.h>

#include<string.h>

typedef struct student

{

    char name[200];

    int score;

    int age;

}s;

void swap(s *s1, s *s2)

{

    s temp;

    temp = *s1;

    *s1 = *s2;

    *s2 = temp;

}



int main(){

   

    int n,cnt;

    s A[1000];

    while(~scanf("%d",&n))

    {

    cnt = 0;

    while(n--)

    {

        scanf("%s %d %d",A[cnt].name,&A[cnt].age,&A[cnt].score);

        cnt++;

    }

    //swap(&A[0],&A[1]);

    // s temp;

    // temp = A[0];

    // A[0] = A[1];

    // A[1] = temp;

    //printf("%s",A[1].name);

    //cnt = 3 A读取完毕

    for (int i = 0; i < cnt; i++)

    {

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

        {

            if(A[j].score > A[j+1].score)

            {

                swap(&A[j],&A[j+1]);

            }

            else if(A[j].score == A[j+1].score)

            {

                if(strcmp(A[j].name,A[j+1].name)>0)

                {

                    swap(&A[j],&A[j+1]);

                }

                else if(strcmp(A[j].name,A[j+1].name)==0)

                {

                    if(A[j].age>A[j+1].age)

                    {

                        swap(&A[j],&A[j+1]);

                    }

                   

                }

            }

        }

    }

    for(int i = 0; i < cnt; i++)

    {

        printf("%s %d %d\n",A[i].name,A[i].age,A[i].score);

    }

    }

   

    return 0;

}



点赞(0)
 

0.0分

0 人评分

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

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

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

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

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

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

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

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

评论列表 共有 0 条评论

暂无评论