您的位置:首页 > 编程语言 > C语言/C++

学生信息排序

2017-02-27 15:56 120 查看
题目描述

定义存放一个学生信息的结构体类型,学生信息包括:姓名,学号,性别,院系,要求在随意输入5个学生的相关信息后,按照学号从小到大顺序输出这些学生的信息。

输入

先输入5名学生的信息,按学号顺序排序输出后在输入要统计的院系名称

输出

先按学号从小到大的顺序输出学生信息

样例输入

zhang3    20149003    M    信息系

zhang5    20149005    F    信息系

zhang10    20149010    F    管理系

zhang1    20149001    M    会计系

zhang9    20149009    M    会计系

样例输出

zhang1    20149001    M    会计系

zhang3    20149003    M    信息系

zhang5    20149005    F    信息系

zhang9    20149009    M    会计系

zhang10    20149010    F    管理系

提示

数据输出之间有4个空格

迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……

#include <stdio.h>

struct zhigong

{

    char name[5][80],zan[5][80],n[5];

    long int xue[5];

} z;

void paixu(int a[])

{

    int i,j,t;

    for(j=0; j<4; j++)

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

        {

            if(z.xue[i]>z.xue[i+1])

            {

                t=z.xue[i];

                z.xue[i]=z.xue[i+1];

                z.xue[i+1]=t;

                t=a[i];

                a[i]=a[i+1];

                a[i+1]=t;

            }

        }

}

int main()

{

    int i,a[5];

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

    {

        scanf("%s%ld %c %s",z.name[i],&z.xue[i],&z.n[i],z.zan[i]);

        a[i]=i;

    }

    paixu(a);

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

        printf("%s    %ld    %c    %s\n",z.name[a[i]],z.xue[i],z.n[a[i]],z.zan[a[i]]);

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C语言 OJ 编程 结构 class
相关文章推荐