见路不走


私信TA

用户名:dotcpp0608613

访问量:4602

签 名:

等  级
排  名 781
经  验 3756
参赛次数 0
文章发表 21
年  龄 0
在职情况 学生
学  校 USTC
专  业

  自我简介:

TA的其他文章

解题思路:输入-冒泡法-输出

注意事项:字符串的比较不能直接大小写

参考代码:

#include<stdio.h>

#include<string.h>

typedef struct student{

    char id[20];

    int mark;

}stu;

    stu a[21];

int main()

{

    int n,k,j,i,p;

    int temp;

    char ID[20];

    scanf("%d",&n);

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

    {

        scanf("%s %d\n",&a[i].id,&a[i].mark);

        

    }

    

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

    {

        for(k=0;k<i-j;k++)

        {

            if(a[k].mark<a[k+1].mark)

            {

                temp=a[k].mark;

                a[k].mark=a[k+1].mark;

                a[k+1].mark=temp;

                

                strcpy(ID,a[k].id);

                strcpy(a[k].id,a[k+1].id);

                strcpy(a[k+1].id,ID);

            }

            if(a[k].mark==a[k+1].mark)

            {

                if(strcmp(a[k].id,a[k + 1].id) > 0)//字符串比较函数

                {

                temp=a[k].mark;

                a[k].mark=a[k+1].mark;

                a[k+1].mark=temp;

                

                strcpy(ID,a[k].id);

                strcpy(a[k].id,a[k+1].id);

                strcpy(a[k+1].id,ID);   

                    

                }

            }

            

        }

        

    }

    

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

    {

       printf("%s %d\n",a[p].id,a[p].mark);

    }


    

    

 

    return 0;

}


 

0.0分

2 人评分

  评论区

  • «
  • »