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

数据结构练习:
  • 构造一个学生类型 : 姓名, 年龄, 学号, 成绩
  • 处理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");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值