定义一个学生信息结构体,包含姓名,学号,语文成绩、数学成绩,和英语成绩,定义结构体数组存放不同学生的信息,可以在终端录入学生的信息,可以实现对于学生成绩的排序。

代码实现如下:

#include 
struct STU
{
    char name[128];
    int num;
    int chinese;
    int math;
    int Engilsh;
    int sum;
};

int main(int argc, const char *argv[])
{
    int sum;
    int i, j;

    struct STU stu[4];
    printf("请录入学生成绩:\n");
    for(i = 0; i < 4; i++)
    {
        scanf("%d %s %d %d %d", &stu[i].num, stu[i].name, &stu[i].chinese, &stu[i].math, &stu[i].Engilsh);
        stu[i].sum = stu[i].chinese+stu[i].math+stu[i].Engilsh;
    }
    printf("--------------学生成绩显示--------------\n");
    for(i = 0 ; i < 4; i++)
        printf("学号:%d 姓名:%s 语文成绩:%d 数学成绩:%d 英语成绩:%d 总分:%d\n", stu[i].num, stu[i].name, stu[i].chinese, stu[i].math, stu[i].Engilsh, stu[i].sum);
    putchar(10);

    struct STU t;                                                                                                                                                                       
    for(i = 1; i < 4; i++)
    {
        for(j = 0 ; j < 4-i; j++)
        {
            if(stu[j].sum < stu[j+1].sum)
            {
                t = stu[j];
                stu[j] = stu[j+1];
                stu[j+1] = t;
            }
        }
    }
    printf("-------------按总分降序排序-------------\n");
    for(i = 0 ; i < 4; i++)
        printf("学号:%d 姓名:%s 语文成绩:%d 数学成绩:%d 英语成绩:%d 总分:%d\n", stu[i].num, stu[i].name, stu[i].chinese, stu[i].math, stu[i].Engilsh, stu[i].sum);
    putchar(10);
    return 0;
}

运行结果:

定义一个学生信息结构体,包含姓名,学号,语文成绩、数学成绩,和英语成绩,定义结构体数组存放不同学生的信息,可以在终端录入学生的信息,可以实现对于学生成绩的排序。_第1张图片

 

你可能感兴趣的:(c语言)