设计一个英雄的结构体,包括成员姓名,年龄,性别;创建结构体数组,数组中存放5名英雄。通过冒泡排序的算法,将数组中的英雄按照年龄进行升序排序,最终打印排序后的结果。
#include<iostream>
using namespace std;
//定义结构体
struct hero {
string name;
int age;
string sex;
};
//冒泡排序
void bubbleSort(struct hero * arr, int len) {
struct hero t;
//外循环 总共排序轮数
for (int i = 0; i < len - 1; i++) {
//内循环 比较次数
for (int j = 0; j < len - 1 - i; j++) {
if (arr[j].age > arr[j+1].age) {
t = arr[j];
arr[j] = arr[j+1];
arr[j+1] = t;
}
}
}
}
void printArray(struct hero* 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()
{
//创建结构体
srand((unsigned int)time(NULL));
struct hero h[5]={
{"张飞",20,"男"},
{"吕布",50,"男"},
{"貂蝉",20,"女"},
{"关羽",25,"男"},
{"如来",40,"男"}
};
int len = sizeof(h) / sizeof(h[0]);
bubbleSort(h, len);
printArray(h, len);
return 0;
}