您好,欢迎来到叨叨游戏网。
搜索
您的当前位置:首页PTA 7-6 学生平均成绩排序

PTA 7-6 学生平均成绩排序

来源:叨叨游戏网

假设学生的基本信息包括学号、姓名、三门课程成绩以及个人平均成绩,定义一个能够表示学生信息的结构类型。输入n(n<50)个学生的成绩信息,按照学生的个人平均分从高到低输出他们的信息。

注意:
1)平均分出现相同的分数时按学号从小到大进行排序输出。
2)平均分以四舍五入取整数保存。

输入格式:
输入一个正整数n(n<50),下面n行输入n个学生的信息,包括:学号、姓名、三门课程成绩(整数)。

输出格式:
输出从高到低排序后的学生信息,包括:学号、姓名、三门课程成绩、平均分(整数)
输入样例:

输出样例:

102 Wang 91 88 90 90
103 Li 75 90 86 84
104 chen 86 90 75 84
101 Zhang 78 87 85 83

#include<stdio.h>
struct student{
    int num ,a,b,c;//a,b,c为三门学生成绩,num为学号
    char name[10];
    double average;
}stu[10],temp;//运用结构体
int main(){
    int n,i,j;
    scanf("%d",&n);
    for(i = 0;i < n;i++){
        scanf("%d %s %d %d %d",&stu[i].num,stu[i].name,&stu[i].a,&stu[i].b,&stu[i].c);
        stu[i].average = (stu[i].a+stu[i].b+stu[i].c)/3.0;
}
    for(i = 0;i < n;i++){
        for(j=0;j<n-i;j++){
            if(stu[j].average<stu[j+1].average){
                temp = stu[j];
                stu[j] = stu[j+1];
                stu[j+1] = temp;
            }else if(stu[j].average==stu[j+1].average){
                if (stu[j+1].num<stu[j].num){
                    temp = stu[j+1];
                    stu[j+1] = stu[j];
                    stu[j] = temp;
                }
            }
        }
    }
    for(i=0;i<n;i++){
        printf("%d %s %d %d %d %.0f\n",stu[i].num,stu[i].name,stu[i].a,stu[i].b,stu[i].c,stu[i].average);
    }
    return 0;
}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.net 版权所有 湘ICP备2024080961号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务