案例描述:
设计一个英雄的结构体,包括成员姓名、年龄、性别;创建结构体数组,数组中存放5名英雄。
通过冒泡排序的算法,将数组中的英雄按照英雄的年龄进行升序排序,最终打印排序后结果
5名英雄信息如下:
{"刘备",23,"男"},
{"关羽",22,"男"},
{"张飞",20,"男"},
{"赵云",21,"男"},
{"貂蝉",14,"女"},
示例:
#include <iostream>
using namespace std;
#include <string>
/*
案例描述:
设计一个英雄的结构体,包括成员姓名、年龄、性别;创建结构体数组,数组中存放5名英雄。
通过冒泡排序的算法,将数组中的英雄按照英雄的年龄进行升序排序,最终打印排序后结果
*/
//定义英雄结构体
struct Heros
{
string name;//姓名
int age;//年龄
string sex;//性别
};
//冒泡排序函数
void bubbleSort(struct Heros arr[],int len)
{
for (int i = 0; i < len - 1; i++)
{
for (int j = 0; j < len - i - 1; j++)
{
if(arr[j].age > arr[j+1].age)
{
//交换年龄
int temp = arr[j].age;
arr[j].age = arr[j+1].age;
arr[j+1].age = temp;
//交换姓名
string temp_name = arr[j].name;
arr[j].name = arr[j+1].name;
arr[j+1].name = temp_name;
//交换性别
string temp_sex = arr[j].sex;
arr[j].sex = arr[j+1].sex;
arr[j+1].sex =temp_sex;
}
}
}
}
//打印函数
void PrintHero(struct Heros arr[],int len)
{
for (int i = 0; i < len; i++)
{
cout << arr[i].name << "\t" << arr[i].age << "\t" << arr[i].sex << endl;
}
}
int main()
{
//创建英雄数组
struct Heros H_name[5] =
{
{"刘备",23,"男"},
{"关羽",22,"男"},
{"张飞",20,"男"},
{"赵云",21,"男"},
{"貂蝉",14,"女"}
};
int len = sizeof(H_name) / sizeof(H_name[0]);
//冒泡排序升序英雄年龄排序
bubbleSort(H_name,len);
//打印输出英雄信息按照升序顺序
PrintHero(H_name,len);
system("pause");
return 0;
}