松直君


私信TA

用户名:songzhijun

访问量:3801

签 名:

新一代的软件工程师们,加油吧,让我们用代码改变世界

等  级
排  名 5084
经  验 1594
参赛次数 0
文章发表 4
年  龄 0
在职情况 学生
学  校 天津大学仁爱学院
专  业 软件工程

  自我简介:

代码热爱者

多个学生信息排序(结构体+数组)

描述

假设学生的基本信息包括学号、姓名、三门功课成绩以及个人平均成绩。用结构体表示学生信息。输入10个学生的信息,计算平均分,并按照平均分从高到低排序后输出,两列数据之间用'\t'分隔,成绩保留两位小数。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬

输入输出示例

输入    输出    

示例 1    20180001 爱丽丝 29   45.6   0020180002 刘德华 49   55.6   9020180003 张老三 69   65.6   8020180004 李老四 99   95.6    9020180005 杰克瑞 49   65.6    8020180006 孙大圣 89   45.6   0020180007 唐小僧 79   55.6   9020180008 王小二 69   65.6   8020180009 郭德纲 59   75.6    4020180010 小岳岳 49   85.6    80
    李老四 94.87
唐小僧 74.87
张老三 71.53
王小二 71.53
小岳岳 71.53
刘德华 64.87
杰克瑞 64.87
郭德纲 58.20
孙大圣 44.87
爱丽丝 24.87
   


#include<stdio.h>


struct student

{

     /*请补充代码*/

     char id[10];

     char name[10];

     double point[3];

     double aver;

};

int main(void)

{

    struct student stu[10];

    struct student stu1;

    /*请补充代码*/

    int i;

    for(i=0;i<10;i++)

    {

    scanf("%s %s %lf %lf %lf",&stu[i].id,&stu[i].name,&stu[i].point[0],&stu[i].point[1],&stu[i].point[2]);

    

}

for(i=0;i<10;i++)

{

stu[i].aver=(stu[i].point[1]+stu[i].point[2]+stu[i].point[0])/3.0;

}

    int j;

    for(i=0;i<9;i++)

    {

    for(j=0;j<10-i-1;j++)

    {

    if(stu[j].aver<stu[j+1].aver)

    {

    stu1=stu[j];

    stu[j]=stu[j+1];

    stu[j+1]=stu1;

}

}

}

for(i=0;i<10;i++)

{

printf("%s\t%.2lf\n",stu[i].name,stu[i].aver);

    return 0;

}


 

0.0分

2 人评分

  评论区

  • «
  • »