早教吧 育儿知识 作业答案 考试题库 百科 知识分享

C语言奖学金某学校获得一笔企业资助,打算拿出一部分为成绩优秀的前5名学生发放奖学金。期末,每名学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两名学生成

题目详情
C语言奖学金
某学校获得一笔企业资助,打算拿出一部分为成绩优秀的前5名学生发放奖学金。期末,每名学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两名学生成绩相同,再按语文成绩从高到低排序;如果两名学生总分和语文成绩都相同,那么规定学号小的学生排在前面。这样,每名学生的排序是唯一确定的。
l 任务要求
先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前5名学生的学号和总分。例如,在某个正确答案中,如果前两行的输出数据是:
7 279
5 279
则这两行数据的含义是:总分最高的两位同学的学号依次是7号、5号。这两名同学总分相同,但学号为7的学生语文成绩高一些。如果前两行的输出数据是:
5 279
7 279
则按输出错误处理。
l 输入要求
输入共有n+1行。第1行是一个正整数,表示该校参加评选的学生人数。第2到n+1行,每行有3个数字,用空格隔开,每个数字都在0到100之间。第j行的3个数字依次表示学号为j-1的学生的语文、数学、英语的成绩。每个学生的学号按照输入顺序编号为1到n。
l 输出要求
输出共5行,每行是两个正整数,用空格隔开,依次表示前5名学生的学号和总分。
▼优质解答
答案和解析
#include
#include


typedef struct Student{

    int snum;
    char score[10];
    int sum;
}Student;
int main(){
    int n;
    scanf("%d",&n);
    Student a[128];   
    int i,j;
    for(i=0;i        a[i].snum = i+1;
        a[i].sum = 0;
        for(j=0;j<3;j++){
            scanf("%d",&a[i].score[j]);
            a[i].sum += a[i].score[j];
        }
    }
    Student tmp;
    for(j=n-1;j>0;j--){
        for(i=0;i            if(a[i].sum < a[i+1].sum){
                tmp = a[i];
                a[i] = a[i+1];
                a[i+1] = tmp;  
            }
            else if(a[i].sum==a[i+1].sum){
                if(a[i].score[0] < a[i+1].score[0]){
                    tmp = a[i];
                    a[i] = a[i+1];
                    a[i+1] = tmp; 
                }    
            }
        }
    }
    for(i=0;i<5;i++){
        printf("%d %d\n",a[i].snum,a[i].sum);
    }
    system("pause");
    return 0;
}

看了 C语言奖学金某学校获得一笔企...的网友还看了以下:

(2014•三门县一模)某校准备组织七年级539名同学到三门核电站或三门农博园去感受科技的魅力,调  2020-04-07 …

小强3门学科平均分是91分,如果不算数学,其他两门平均分比三门学科的平均成绩低2分.小强数学成绩是  2020-06-03 …

小琳期末考了五门科目,去掉一个最高分和一个最低分,平均分是90.5,去掉一个最高分,平均分是86.  2020-06-21 …

各位,帮下忙,回答下问题:1.出口成章(打一学科名)2.低声细语(打一文学体裁名)3.牙牙学语(打  2020-06-24 …

某校高一开设4门选修课有4名同学,每人只选一门恰有2门课程没有同学选修,共有种不同某校高一开设4门  2020-06-27 …

小王考试语数英三门学科,已知语文比三门平均分低5分,数学比三门平均分高8分,那么语文与英语相差几分  2020-11-20 …

急,小晴期终考试考了语数英三门学科,已知语文比三门学科的平均成绩低5分,数学比三门学科的平均成绩高8  2020-11-20 …

小学二年级数学附加题几名同学两门课都没做完二一班有36名同学,有一次班主任李老师统计一下同学们的作业  2020-11-27 …

四年级三班有45名同学,在期末考试中,有22名同学语文成绩优秀,27名同学数学成绩优秀,且两门功课都  2020-11-28 …

矩阵求和C++拜托各位大神已知某一个学习小组共有5名同学,一年中共学习了英语、数学、物理、化学四门课  2020-12-06 …