题目:
设计一个英雄的结构体,包括成员姓名,年龄,性别;创建结构体数组,数组中存放5名英雄。通过
冒泡排序的算法,将数组中的英雄按照年龄进行升序排序,最终打印排序后的结果。
五名英雄信息如下
{
{"刘备",23,"男"},
{"关羽",22,"男"},
{"张飞",20,"男"},
{"赵云",21,"男"},
{"貂蝉",19,"女"}
}
程序:
#include"头文件.h"
//1.定义结构体
struct hero {
string name;
int age;
string sex;
};
void bubblesort(struct hero heroarry[], int len) {
for (int i = 0; i < len-1; i++) {
for (int j = 0; j < len - i - 1; j++) {
if (heroarry[j].age > heroarry[j + 1].age) {
struct hero temp;
temp = heroarry[j];
heroarry[j] = heroarry[j + 1];
heroarry[j + 1] = temp;
}
}
}
}
void heroprint(struct hero heroarry[], int len) {
for (int i = 0; i < len; i++) {
cout << "姓名: " << heroarry[i].name << " 年龄: " << heroarry[i].age << " 性别: " << heroarry[i].sex << endl;
}
}
int main() {
int len;
//2.给结构体赋值
struct hero heroarry[5] ={
{"刘备", 23, "男"},
{ "关羽",22,"男" },
{ "张飞",20,"男" },
{ "赵云",21,"男" },
{ "貂蝉",19,"女" }
};
len = sizeof(heroarry) / sizeof(heroarry[0]);
//排序前,结构体内的内容
cout << "排序前" << endl;
heroprint(heroarry, len);
//3.给结构体进行升序排序
cout << "排序后" << endl;
bubblesort(heroarry, len);
//4.打印结果
heroprint(heroarry, len);
return 0;
}
结果:
排序前
姓名: 刘备 年龄: 23 性别: 男
姓名: 关羽 年龄: 22 性别: 男
姓名: 张飞 年龄: 20 性别: 男
姓名: 赵云 年龄: 21 性别: 男
姓名: 貂蝉 年龄: 19 性别: 女
排序后
姓名: 貂蝉 年龄: 19 性别: 女
姓名: 张飞 年龄: 20 性别: 男
姓名: 赵云 年龄: 21 性别: 男
姓名: 关羽 年龄: 22 性别: 男
姓名: 刘备 年龄: 23 性别: 男