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。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Q&A PyCharm安装包失败的解决办法「建议收藏」

    Q&A PyCharm安装包失败的解决办法「建议收藏」问题场景:Win10专业版64位; Administrator用户登陆 PyCharm版本:2020.1.1专业版 安装了三个版本的Python在C:\python目录下,分别为Python3.6.8,3.7.7,3.8.3,都是64位。 在PyCharm中创建三个VirtualenvEnvironment,分别为venv_py36、venv_py37、venv_py38问题描述在PyCharm的ProjectInterpretor中安装包总是失败…

  • swift uiwebview 用cookie 来实现自动登录

    swift uiwebview 用cookie 来实现自动登录

  • VMware的Linux虚拟机桥接模式突然上不了网解决方法「建议收藏」

    VMware的Linux虚拟机桥接模式突然上不了网解决方法「建议收藏」虚拟机的IP、子网掩码、默认网关、DNS设置得与宿主机在同一子网,虚拟机桥接模式一直以来都可以正常上网,但突然有一天就不能上网了,还死活ping不通外网、网关。此时只需将VM的虚拟网络编辑器中关于桥接模式的设置改一下就行了,具体步骤如下。1、右键点击window系统网络状态那个图标,单击打开“网络和Internet”设置。2、点击更改适配器选项。3、查看window系统联网使用的网卡,记住设备名。4、打开VMware,点击编辑>虚拟网络编辑器。5、在弹出界面点击更改设置。6、桥接模式选

  • java injector_java – Injector Hierarchy / Child Injector解释?「建议收藏」

    java injector_java – Injector Hierarchy / Child Injector解释?「建议收藏」Modules.override()在Stage.PRODUCTION中不起作用.您应该使用PrivateModule,其中绑定仅在私有模块内有效/可见,因此您可以将不同的实现类绑定到同一个接口.然后,您可以将Private模块安装到父模块,但是您必须显式公开()您希望其他模块可见的所有绑定.让我们说:DatabaseSearchModule.java(扩展PrivateModule)bind(P…

    2022年10月31日
  • 如何定义多个context:property-placeholder配置

    如何定义多个context:property-placeholder配置今天在配置多配置文件的时候偶然发现如果我使用<context:property-placeholderlocation=”classpath:jdbc.properties”/><context:property-placeholderlocation=”classpath:freemarker.properties”/>//这个进行多行编写配置文件的时候会出现后面那个文件出现读取不到的问题这样会导致后面那个配置文件失效原因:Spring只会加载第一个cont

  • modelsim se 10.1a 下载与破解

    modelsim se 10.1a 下载与破解学HDL避免不了的要用到modelsim,遗憾的是至今也没怎么用,昨天下载了modelsim装上了,鼓捣破解鼓捣了一阵子。     我是一个软件控,除非是对就器件不支持或者有明显bug的一般都会尝试用最新版,觉得既然搞电子做嵌入式就得更得上潮流,能适应得了新环境。所以很多软件,哪怕是用的再顺的除了变化较大的新版也会毫不犹豫去尝试。好了,闲话不多说,看一下modelsim,modelsim

发表回复

您的电子邮箱地址不会被公开。

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