使用结构体数组排序

案例描述:使用一个学生结构体,将班级中的学生按照成绩来使用冒泡排序法排序输出
[ 分析:步骤 ]
1、创建一个学生结构体

struct Student  //学生结构体
{
	int age;
	int score;
	string name;

};

2、创建一个学生结构体数组,并赋值

	Student sdu[10] = {  //学生的信息
		{18,95,"Student_A"},
		{18,65,"Student_B"},
		{18,78,"Student_C"},
		{18,62,"Student_D"},
		{18,76,"Student_E"},
		{18,83,"Student_F"},
		{18,90,"Student_G"},
		{18,80,"Student_H"},
		{18,91,"Student_I"},
		{18,95,"Student_J"}

	};

3、以学生的分数进行排序

void bubblesore(Student sdu[10],int len) //冒泡排序法
{
	for (int i = 0; i < len; i++)
	{
		for (int j = 0; j < len - i - 1; j++)
		{
			if (sdu[j].score < sdu[j + 1].score)
			{
				//分数交换
				int temp_score= sdu[j].score;
				sdu[j].score = sdu[j + 1].score;
				sdu[j + 1].score = temp_score;
				//年龄交换
				int temp_age = sdu[j].age;
				sdu[j].age = sdu[j+1].age;
				sdu[j + 1].age = temp_age;
				//名字交换
				string temp_name = sdu[j].name;
				sdu[j].name = sdu[j + 1].name;
				sdu[j + 1].name = temp_name;
			}
		}
	}
}

4、打印排序之后的学生名次

void printfInfo(Student *sdu, int len)//输出结构体信息
{
	for (int i = 0; i < len; i++)
	{
		cout << "第" << i + 1 << "名是:" << sdu[i].name << "成绩为: " << sdu[i].score << endl; 
	}
}

结果:
使用冒泡排序法之后的打印输出
在冒泡排序法中可以使用一个学生的结果体直接进行一个数据交换

Student temp = sdu[j];
sdu[j] = sdu[j + 1];
sdu[j + 1] = temp;
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值