美文网首页
8-数据类型_处理5个学生的数据

8-数据类型_处理5个学生的数据

作者: ibo | 来源:发表于2017-02-03 15:42 被阅读0次
    数据结构练习:
    • 构造一个学生类型 : 姓名, 年龄, 学号, 成绩
    • 处理5个学生的数据;
    • 循环输入学生信息;
    • 找出成绩最高的学生, 并且打印其信息(注意:不要排序).
    • 按照成绩排序, 并且打印其信息.
    #include <stdio.h>
    
    typedef struct student
    {
        char name[128];
        int age;
        int id;
        int score;
    }stu_t;
    void input_info(stu_t *p,int n);
    stu_t *get_max_info(stu_t *p, int n);
    void max_min(stu_t *p, int n);
    void print_info(stu_t *p, int n);
    int main(int argc, const char *argv[])
    {
        int i;
        stu_t *max;
        stu_t stu[5];
        input_info(stu, 5);
        max = get_max_info(stu,5);
        for(i = 0; i < 5; i++)
        {
            if(max->score == stu[i].score)
            {
                printf("最高成绩为: NAME:%s  AGE:%d  ID:%d  SCORE:%d\n",stu[i].name, stu[i].age, stu[i].id, stu[i].score);
            }
        }
    
        max_min(stu, 5);
        print_info(stu,5);
    
        return 0;
    }
    void input_info(stu_t *p,int n)
    {
        int i;
    
        for(i = 0; i < n; i++)
        {
            printf("NAME\tAGE\tID\tSCORE\n");
            scanf("%s%d%d%d",p[i].name, &p[i].age,&p[i].id, &p[i].score);
        }
    }
    
    stu_t *get_max_info(stu_t *p, int n)
    {
        int i;
        stu_t *hs = p;
        for(i = 0; i < n; i++)
        {
            if(hs->score < p[i].score)
                hs = &p[i];
        }
        return hs;
    }
    
    void max_min(stu_t *p, int n)
    {
        int i, j;
        stu_t temp;
    
        for(i = 0; i < n-1; i++)
        {
            for(j = 0; j < n-1-i; j++)
            {
                if(p[j].score < p[j+1].score)
                {
                    temp = p[j];
                    p[j] = p[j+1];
                    p[j+1] = temp;
                }
            }
        }
    }
    
    
    void print_info(stu_t *p, int n)
    {
        int i;
    
        printf("*********************************\n");
        for(i = 0; i < n; i++)
        {
    
            printf("NAME:%s  AGE:%d  ID:%d  SCORE:%d\n",p[i].name, p[i].age, p[i].id, p[i].score);
        }
        printf("*********************************\n");
    }
    
    

    相关文章

      网友评论

          本文标题:8-数据类型_处理5个学生的数据

          本文链接:https://www.haomeiwen.com/subject/tmydittx.html