结构体案例2——通过冒泡排序之后打印结构体信息

/*
案例描述:
设计一个英雄的结构体,包括成员姓名,年龄,性别;创建结构体数组,数组中存放5名英雄。
通过冒泡排序的算法,将数组中的英雄按照年龄进行升序排序,最终打印排序后的结果

*/

#include "pch.h"
#include 
#include 

using namespace std;


//定义一个英雄的结构体
struct hero
{
     
	string name;
	int age;
	string sex;

};

//冒泡排序即从小到大排序(升序),思想为交换两个数字,
void maopao(struct hero h[],int len) {
     

	for (int i = 0; i < len-1; i++) {
     
		for (int j = 0; j < len - i - 1; j++) {
     
			//如果j下标元素的年龄大于j+1下标元素的年龄,交换
			if (h[j].age > h[j + 1].age)
			{
     
                //交换两个数字
				struct hero temp;
				temp = h[j];
				h[j] = h[j + 1];
				h[j + 1] = temp;
			}
		}

	}


}

void print(struct hero h[], int len) {
     

	for (int i = 0; i < len; i++) {
     

		cout << "姓名:" << h[i].name << "年龄:" << h[i].age << "性别:" << h[i].sex << endl;


	}


	
}

int main()
{
     
    //创建一个英雄的结构体数组
	struct hero h[5] = {
     
	
	{
     "刘备",23,"男"},
	{
     "关羽",22,"男"},
	{
     "张飞",20,"男"},
	{
     "赵云",21,"男"},
	{
     "貂蝉",20,"女"},

	
	
	};
	int len = sizeof(h) / sizeof(h[0]);
	//通过冒泡进行排序
	maopao(h, len);

	//打印
	print(h, len);





}

你可能感兴趣的:(结构体案例2——通过冒泡排序之后打印结构体信息)