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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • kettle教程(1) 简单入门、kettle简单插入与更新。打开kettle

    kettle教程(1) 简单入门、kettle简单插入与更新。打开kettle本文要点:Kettle的建立数据库连接、使用kettle进行简单的全量对比插入更新:kettle会自动对比用户设置的对比字段,若目标表不存在该字段,则新插入该条记录。若存在,则更新。 Kettle简介:Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。Kettle中文名称叫水壶,该项目的主程序员MATT希望把各种数…

    2022年5月10日
    33
  • idea如何隐藏自动生成的*.iml、.idea文件[通俗易懂]

    idea如何隐藏自动生成的*.iml、.idea文件[通俗易懂]idea怎么隐藏创建项目时会自动生成的*.iml和.idea。点击File–&gt;setting(或者Ctrl+Alt+S)–&gt;Editor–&gt; Flie Types 在ignore files and folders,然后在输入框最后面跟上    .idea;*.iml;然后Apply–&gt;OK 即可。最后项目的样子。…

    2022年6月13日
    92
  • 关于数据库存储过程分页DatagridView BindingNavigator 控件的详细实现

    关于数据库存储过程分页DatagridView BindingNavigator 控件的详细实现程序有3个控件BindingNavigator:就是DataGridView控件上面的那个,在工程里名字:bindngrDemoDataGridView:dgvDemoBindingSource:这个其实可以不要bindseDemo 示例采用的是SQLSERVER的示例数据库pub在pub数据库里写入分页存储过程CREATEPROCEDURE[db…

    2022年7月12日
    24
  • 深度学习笔记三:反向传播(backpropagation)算法[通俗易懂]

    深度学习笔记三:反向传播(backpropagation)算法[通俗易懂]接上一篇的最后,我们要训练多层网络的时候,最后关键的部分就是求梯度啦。纯数学方法几乎是不可能的,那么反向传播算法就是用来求梯度的,用了一个很巧妙的方法。反向传播算法应该是神经网络最基本最需要弄懂的方法了,要是反向传播方法不懂,后面基本上进行不下去。非常推荐的是Howthebackpropagationalgorithmworks在最开始的博客中提过,这本书是这篇笔记用到的教材之

    2022年5月5日
    67
  • JAVA反射机制

    JAVA反射机制

    2021年11月15日
    42
  • idea2021.3.3激活码获取【2021最新】

    (idea2021.3.3激活码获取)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~AERNFLMXDO-eyJsaWNlb…

    2022年3月28日
    518

发表回复

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

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