2008秋-计算机软件基础-多关键字排序

2008秋-计算机软件基础-多关键字排序

/*
 多关键字排序:
  先按总分由高到低排序,若总分相同则按数学成绩由高到低排序
,若总分和数学成绩都相同,则按英语成绩由高到低排序。
 

*/

#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。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/110979.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何反编译小程序的源码(微信小程序反编译工具)

    网易Mumu模拟器安装下载地址:http://mumu.163.com/360/ 下载完安装包后直接安装 打开模拟器安装微信、RE文件管理器设置Root权限打开RE文件管理器,提示请求超级用户访问权限,选择允许到此准备工作完成。打开微信,然后打开小程序,获取小程序编译包先打开微信 搜索微博小程序打开 打开RE文件管理 按照/data/data/com.tencent.mm/MicroMsg/80b34bca4945f…

    2022年4月18日
    55
  • 图片url地址的生成获取方法

    图片url地址的生成获取方法图片url地址的生成获取方法  在写博客插入图片时,许多时候需要提供图片的url地址。作为菜鸡的我,自然是一脸懵逼。那么什么是所谓的url地址呢?又该如何获取图片的url地址呢?  首先来看一下度娘对url地址的解释:url是统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的url,它包含的信息指出文件的位置以及浏览器应该怎么处理它。  简单来说,url地址是是用来定位、访问网上资源用的。常见的网址也属于url地

    2022年9月22日
    2
  • LARS回归算法的几何意义

    LARS回归算法的几何意义LARS算法的几何意义 1   LARS算法简介  Efron于2004年发表在AnnalsofStatistics的文章LEASTANGLEREGRESSION中提出LARS算法,其核心思想是提出一种新的solutionpath(求解路径),即在已经入选的变量中,寻找一个新的路径,使得在这个路径上前进时,当前残差与已入选变量的相关系数都是相同的,直到找出新的比当前残差相

    2022年6月29日
    38
  • AdventureWorks2008 数据库安装

    AdventureWorks2008 数据库安装我使用的操作系统是win8.1,由于对早前安装的sqlserver2008的兼容性不太好,要安装对应的servicepack来解决一下这个问题。如何使用SQLServer在Windo

    2022年7月3日
    25
  • pycharm激活码2021【2021最新】[通俗易懂]

    (pycharm激活码2021)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html9ZHRNTE33T-eyJsaWNlbnNlSW…

    2022年3月28日
    73
  • Codeblocks中文字体反转[通俗易懂]

    Codeblocks中文字体反转[通俗易懂]codeblocks输入中文字体,出现这样的情况:属于字体的设置问题,将字体栏中的@符号去掉即可。

    2022年7月14日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号