结构体解决冒泡排序

发布于:2025-06-21 ⋅ 阅读:(22) ⋅ 点赞:(0)

在这里插入图片描述
在这里插入图片描述

设计英雄的结构体

//1、设计结构体
struct Hero
{
	string name;//姓名
	int age;//年龄
	string sex;//性别
};

创建英雄的数组

//2、创建数组存放英雄
struct Hero Array[5] =
{
	{"刘备", 34 ,"男"},
	{"关羽", 45 ,"男"},
	{"张飞", 11 ,"男"},
	{"赵云", 54 ,"男"},
	{"貂蝉", 46 ,"女"},
};

int len = sizeof(Array) / sizeof(Array[0]);

进行冒泡排序

//冒泡排序
void bubbleSort(struct Hero Array[], int len)
{
	for (int i = 0; i < len - 1; i++) //排序的轮数
	{
		for (int j = 0; j < len - i - 1; j++) //第i轮,需要排序的次数
		{
			if (Array[j].age > Array[j + 1].age)
			{
				struct Hero temp = Array[j];
				Array[j] = Array[j + 1];
				Array[j + 1] = temp;
			}
		}
	}
}

打印处理后的数据

//打印函数
void printHero(struct Hero Array[], int len)
{
	for (int i = 0; i < len; i++)
	{
		cout << "英雄的姓名为:" << Array[i].name << " 英雄的年龄为:"
			<< Array[i].age << " 英雄的性别为:" << Array[i].sex << endl;
	}
}

总结

#include<iostream>
#include<string>
using namespace std;

//1、设计结构体
struct Hero
{
	string name;//姓名
	int age;//年龄
	string sex;//性别
};

//冒泡排序
void bubbleSort(struct Hero Array[], int len)
{
	for (int i = 0; i < len - 1; i++) //排序的轮数
	{
		for (int j = 0; j < len - i - 1; j++) //第i轮,需要排序的次数
		{
			if (Array[j].age > Array[j + 1].age)
			{
				struct Hero temp = Array[j];
				Array[j] = Array[j + 1];
				Array[j + 1] = temp;
			}
		}
	}
}

//打印函数
void printHero(struct Hero Array[], int len)
{
	for (int i = 0; i < len; i++)
	{
		cout << "英雄的姓名为:" << Array[i].name << " 英雄的年龄为:"
			<< Array[i].age << " 英雄的性别为:" << Array[i].sex << endl;
	}
}

int main()
{
	//2、创建数组存放英雄
	struct Hero Array[5] =
	{
		{"刘备", 34 ,"男"},
		{"关羽", 45 ,"男"},
		{"张飞", 11 ,"男"},
		{"赵云", 54 ,"男"},
		{"貂蝉", 46 ,"女"},
	};

	int len = sizeof(Array) / sizeof(Array[0]);

	//3、按照年龄进行升序排序
	bubbleSort(Array,len);

	//4、打印排序后的结果
	printHero(Array, len);

	system("pause");
	return 0;
}

网站公告

今日签到

点亮在社区的每一天
去签到