多关键字排序:
先按总分由高到低排序,若总分相同则按数学成绩由高到低排序
,若总分和数学成绩都相同,则按英语成绩由高到低排序。
*/
#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账号...