C语言成绩排序

输入输出如下,将三门成绩的平均成绩按从低到高排列输出
输入样列

09110003001 zhangsan 87.5 76.5 77.0
09110003002 lisi 77.0 74.5 73.0
09110003003 wangwu 60.5 69.5 56.5
09110003004 chenbo 76.5 87.5 67.0
09110003005 shunyu 90.5 88.5 87.0

输出样例

09110003003 wangwu 60.5 69.5 56.5 62.2
09110003002 lisi 77.0 74.5 73.0 74.8
09110003004 chenbo 76.5 87.5 67.0 77.0
09110003001 zhangsan 87.5 76.5 77.0 80.3
09110003005 shunyu 90.5 88.5 87.0 88.7

第1个回答  2018-01-18
#include <bits/stdc++.h>
using namespace std;
  
  struct data{
   char st1[233],st2[233];
   double a,b,c;
  }a[233];
  
  int mycomp(const data&a,const data&b){
   return((a.a+a.b+a.c)<(b.a+b.b+b.c));
  }

  int main(){   
    int n=1;
    while (scanf("%s%s%lf%lf%lf",&a[n].st1,&a[n].st2,&a[n].a,&a[n].b,&a[n].c)!=EOF)
  n++;
    n--;
    sort(a+1,a+n+1,mycomp);
    for (int i=1;i<=n;i++)
      printf("%s %s %.2lf %.2lf %.2lf\n",a[i].st1,a[i].st2,a[i].a,a[i].b,a[i].c);
  }

本回答被网友采纳

c语言怎么输出成绩最大并要是第几个输入的
include <stdio.h> 主函数定义:int main(){ 声明变量:int i, j, n, t, k, a[20], b[20];输入成绩数量:scanf("%d", &n);输入成绩和下标:for (i = 0; i < n; i++) { scanf("%d", &a[i]);b[i] = i;} 成绩排序:for (i = 0; i < n - 1; i++) { for...

C语言问题。要求编程求出总成绩并按总成绩排?
这段代码是使用C语言实现的,其目的是计算并排序一组选手的总成绩。代码中定义了一个二维数组`scoreData`用于存储每个选手各科成绩,以及一个二维数组`res`用于存储和排序选手的总成绩与排名。首先,代码通过嵌套循环遍历`scoreData`中的成绩数据。内部循环计算每个选手的总成绩,这里假设每行对应一个选手,...

用C语言编程:从键盘输入10个学生的成绩,由高到低排序输出成绩
在C语言编程中,要实现从键盘输入10个学生的成绩并按高分到低分进行排序,可以使用经典的冒泡排序算法。下面是一个简化的步骤描述:首先,包含必要的头文件并定义数组大小:利用C语言,我们可以使用冒泡排序算法轻松解决这个问题。开始时,需要包含,并设定一个数组大小,例如#defineSIZE11。接着,定义一个b...

C语言问题。要求编程求出总成绩并按总成绩排?
在这段代码中,我们将实现一个程序,用于计算每个学生在五门课程中的总成绩,并按照总成绩对这些学生进行排序。程序使用了一个二维数组 `scoreData` 来存储每个学生在五门课程的成绩。接下来,我们将会逐步解释代码的每一部分。首先,我们引入了包含 `int` 类型定义的头文件。然后,主函数 `main()` 被...

C语言 怎么对成绩排序
student *x=(student*)a;student *y=(student*)b;if(x->score[0] > y->score[0])\/\/升序排序(从小到大) 如果>改成<,就是降序排序(从大到小)return 1;return 0;} \/\/上面函数放在struct student下面,需要该结构 \/\/排序方式可以灵活调整,上面我只是用第一门分数进行比较 \/\/你也...

C语言 学生成绩排序 按学生的序号输入 n 名学生的成绩,按照分数由高...
flag!=0:打印排序后的名次信息int main(){ STU *stuHead=(STU *)malloc(sizeof(STU)); stuHead->next=NULL; stuIndex=1; inputStuInfo(stuHead); printf("--打印原始输入的链表!--\\n"); printStuInfo(stuHead,0); printf("--开始按分数降序排列!--\\n"); ...

C语言怎么进行成绩的排序?
{ int a[10],i,j,t,k;printf("请以次输入10个学生的成绩:");for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<9;i++){ k=i;for(j=i;j<10;j++)if(a[j]>a[k])k=j;if(i!=k){ t=a[i];a[i]=a[k];a[k]=t;} } printf("由高到低排序输出成绩:\\n")...

如何用C语言实现根据学号查询学生成绩信息
printf("欢迎使用学生成绩管理系统\\n"); printf("[1] 输入所有学生信息\\n"); printf("[2] 输出所有学生成绩\\n"); printf("[3] 按学号查找某个学生信息\\n"); printf("[4] 按姓名查找某个学生信息\\n"); printf("[5] 按学号对学生排序\\n"); printf("[6] 按总成绩对学生排序\\n"); printf("[...

要求用c语言编写,将总分排序(由高到低),并按总分从高到低输出成绩表
printf("第%d门功课的平均成绩:%.2f\\n",i+1,mean[i]*1.0\/num);} } void sortmean(int num)\/\/按学生平均分由小到大排序 { student temp;int i,j;int maxt,index;for(i=0;i<num-1;i++){ index=i;maxt=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];for(j=i+...

在c语言中,求出成绩的最高分,最低分,平均分,然后成绩由高到低怎样排列...
include <string.h> int n,a[10005];void Sort(int *s){ for(int i=0;i<n;i++)for(int j=i+1;j<n;j++){ if(s[j]>s[i]){ int snum=s[i];s[i]=s[j];s[j]=snum;} } } int main(){ printf("请输入需要排序的成绩的数量:");scanf("%d",&n);for(int i=0;...

相似回答