徐世龙


私信TA

用户名:dotcpp0681143

访问量:556

签 名:

等  级
排  名 8234
经  验 1249
参赛次数 0
文章发表 12
年  龄 0
在职情况 学生
学  校 xdu
专  业

  自我简介:


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

                也就是说输入其实是:

                 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 人评分

  评论区

  • «
  • »