2008秋-计算机软件基础-多关键字排序
  TnD0WQEygW8e 2023年11月09日 47 0
/* 多关键字排序:

  先按总分由高到低排序,若总分相同则按数学成绩由高到低排序

,若总分和数学成绩都相同,则按英语成绩由高到低排序。

 */

#include <stdio.h>
struct student

{

  int xuehao;

  char xingming[10];

  int shuxue;

  int yingyu;

  int yuwen;

  int zongfen;

};

typedef struct student S;

void shuruchengji(S a[], int L)

{

   /*elements are stored in a[1] to a[L]*/

   a[1].xuehao=101;

   strcpy(a[1].xingming,"a1");

   a[1].shuxue=80;

   a[1].yingyu=80;

   a[1].yuwen=80;

   a[1].zongfen=240;


   a[2].xuehao=102;

   strcpy(a[2].xingming,"a2");

   a[2].shuxue=70;

   a[2].yingyu=70;

   a[2].yuwen=70;

   a[2].zongfen=210;

   

   a[3].xuehao=103;

   strcpy(a[3].xingming,"a3");

   a[3].shuxue=90;

   a[3].yingyu=80;

   a[3].yuwen=70;

   a[3].zongfen=240;


   a[4].xuehao=104;

   strcpy(a[4].xingming,"a4");

   a[4].shuxue=90;

   a[4].yingyu=70;

   a[4].yuwen=80;

   a[4].zongfen=240;

}

void bubblesortYingYu(S r[],int n)

 { /*elements are stored in r[1] to r[n]*/

  int i,j,flag;

  S temp;

  flag=1;

  i=1;

  while((i<n)) /*外循环控制排序的总趟数*/

   { 

      for(j=n;j>i;j--) /*内循环控制一趟排序的进行*/ 

          if(r[j].yingyu>r[j-1].yingyu)  /*相邻元素进行比较,若逆序就交换*/

           {         

              temp=r[j];

              r[j]=r[j-1];

              r[j-1]=temp;

           }

      i++;

    }

}

void bubblesortShuXue(S r[],int n)

 { /*elements are stored in r[1] to r[n]*/

  int i,j,flag;

  S temp;

  flag=1;

  i=1;

  while((i<n)) /*外循环控制排序的总趟数*/

   { 

      for(j=n;j>i;j--) /*内循环控制一趟排序的进行*/ 

          if(r[j].shuxue>r[j-1].shuxue)  /*相邻元素进行比较,若逆序就交换*/

           {         

              temp=r[j];

              r[j]=r[j-1];

              r[j-1]=temp;

           }

      i++;

    }

}

void bubblesortZongFen(S r[],int n)

 { /*elements are stored in r[1] to r[n]*/

  int i,j,flag;

  S temp;

  flag=1;

  i=1;

  while((i<n)) /*外循环控制排序的总趟数*/

   { 

      for(j=n;j>i;j--) /*内循环控制一趟排序的进行*/ 

          if(r[j].zongfen>r[j-1].zongfen)  /*相邻元素进行比较,若逆序就交换*/

           {         

              temp=r[j];

              r[j]=r[j-1];

              r[j-1]=temp;

           }

      i++;

    }

}

void xianshi(S a[], int L)

{

  int i;

  for(i=1;i<=L;i++)

      printf(" %d %s %d %d %d %d \n",

      a[i].xuehao,a[i].xingming,a[i].shuxue,

      a[i].yingyu, a[i].yuwen, a[i].zongfen);

}

void main()

{


  S a[5];

  shuruchengji(a,4);

  bubblesortYingYu(a,4);

  bubblesortShuXue(a,4);

  bubblesortZongFen(a,4);

  xianshi(a,4);

  getchar();

}

结构体数组排序,作者:EmanLee。



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月09日 0

暂无评论

推荐阅读
  anLrwkgbyYZS   2023年12月30日   50   0   0 ciiosi++ioscii++
TnD0WQEygW8e