用结构体进行排序的简单应用

应用结构体时,需先声明再定义。
本题描述的是用成绩对三个人进行排序。
#include<stdio.h>
typedef struct _DATE
{
int year;
int month;
int day;
}DATE;
typedef struct _STU
{
int id;
char name[20];
char sex;
int age;
DATE BDay;
float score;
char addr[30];
}STU;
void Show(STU* p, int len)
{
for (int i = 0; i < len; ++i)
{
printf("%-6d %-8s %c %-4d %d-%2d-%2d %-6.1f %s\n",
p[i].id,
p[i].name,
p[i].sex,
p[i].age,
p[i].BDay.year,
p[i].BDay.month,
p[i].BDay.day,
p[i].score,
p[i].addr);
}
?【通过结构体变量,访问结构体成员】
}
void SortScorce(STU*p, int len)
{
for (int j = 1; j < len; ++j)
{
int i = j - 1;
STU t = p[j];
while (i >= 0 && p[i].score > t.score)
{
p[i + 1] = p[i];
i–;
}
p[i+1] = t;
}
}
?【插入排序,将一个属插入到一个有序数列中,插入后保持依旧有序】
void main()
{

STU s[3] =
{
{ 9527,“华安”,‘M’,23,1470,3,6,78.9f,“苏州城边” },
{ 9123,“华文”,‘M’,17,1476,5,5,35.9f,“华府” },
{ 9213,“石榴姐”,‘F’,16,1477,12,16,38.2f,“华府柴房” },
};
?【结构体数组】
int len = sizeof(s) / sizeof(s[0]);
Show(s,len);
puts("-----------------");
SortScorce(s, len);
Show(s ,len);
}
运行结果如下
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值