北京化工大学往年考研上机备考题目分享——成绩排序

题目描述:
输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩都按先录入排列在前的规则处理。
示例:
jack 70
peter 96
Tom 70
smith 67
从高到低 成绩
peter 96
jack 70
Tom 70
smith 67
从低到高
smith 67
jack 70
Tom 70
peter 96
代码来源于博主个人,备考题目不代表考试题目、不代表答案解析,仅供作参考

#include
typedef struct
{
    char a[20];
    int grade;
}student;
int main()
{
    int i,j;
    int n,m;
    student stu[99],temp;
    scanf("%d",&n);
    scanf("%d",&m);
    for(i=0;i<n;i++)  scanf("%s %d",&stu[i].a,&stu[i].grade);
    if(m==1)
    {
        for(i=1;i<n;i++)
        {
            for(j=1;j<n-i;j++)
            {
                if(stu[j-1].grade>stu[j].grade)
                {
                    temp=stu[j-1];
                    stu[j-1]=stu[j];
                    stu[j]=temp;
                }
            }
        }
    }
    if(m==0)
    {
        for(i=1;i<n;i++)
        {
            for(j=1;j<=n-i;j++)
            {
                if(stu[j-1].grade<stu[j].grade)
                {
                    temp=stu[j-1];
                    stu[j-1]=stu[j];
                    stu[j]=temp;
                }
            }
        }
    }
    for(i=0;i<n;i++)
    {
        printf("%s %d\n",stu[i].a,stu[i].grade);
    }
    return 0;
}

你可能感兴趣的:(资料分享)