7-1 学生成绩排序

简介: 7-1 学生成绩排序

7-1 学生成绩排序


分数 12


全屏浏览


切换布局


作者 张泳


单位 浙大城市学院


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


输入格式:

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


输出格式:

输出从高到低排序后的学生信息,包括:学号、姓名、平均分(保留两位小数)。


输入样例:

1. 3
2. 101 Zhang 78 87 85
3. 102 Wang 91 88 90
4. 103 Li 75 90 84

输出样例:

1. 102,Wang,89.67
2. 101,Zhang,83.33
3. 103,Li,83.00


代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include <stdio.h>
#include <string.h>
struct node
{
 int id;
 int f1;
 int f2;
 int f3;
 double f;
 char name[50];
}a[50],t;
int main()
{
 int n,i,j;
 scanf("%d",&n);
 for(i=0;i<n;i++)
 {
  scanf("%d %s %d %d %d",&a[i].id,a[i].name,&a[i].f1,&a[i].f2,&a[i].f3);
  double sum=0;
  sum+=a[i].f1+a[i].f2+a[i].f3;
  a[i].f=sum/3.0;
 }
 for(i=0;i<n-1;i++)
 {for(j=0;j<n-1-i;j++)
 {
  if(a[j].f<a[j+1].f)
  {
   t=a[j];
   a[j]=a[j+1];//max
   a[j+1]=t;
  }
 }
  
  }
 for(i=0;i<n;i++)
 {
  printf("%d,%s,%.2f\n",a[i].id,a[i].name,a[i].f);
 }
 return 0;
}
目录
相关文章
|
6月前
有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,并存到磁盘中
有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,并存到磁盘中
|
1月前
【九度 OJ 05】统计同成绩学生人数
【九度 OJ 05】统计同成绩学生人数
12 1
|
1月前
|
C++
【九度 02】N个学生数据成绩排序
【九度 02】N个学生数据成绩排序
18 0
|
3月前
|
SQL 数据库连接 数据库
查询学号为10002学生的所有成绩
【8月更文挑战第5天】查询学号为10002学生的所有成绩。
169 5
|
C++
成绩统计
小蓝给学生们组织了一场考试,卷面总分为100分,每个学生的得分都是一个0到100的整数。如果得分至少是60分,则称为及格。
84 0
|
6月前
计蒜客_成绩排序
计蒜客_成绩排序