按照英雄的年齡從小到大進行排序
(冒泡排序、結構體)
#include<iostream>
using namespace std;
#include<string>
struct Hero
{
string name;
int age;
string sex;
};
//1.設計英雄結構體
struct Hero heroArray[5] = {
{ "劉備",23,"男" },
{ "關羽",22,"男" },
{ "張飛",20,"男" },
{ "趙雲",21,"男" },
{ "貂蟬",19,"女" }
};
void bubbleSort(struct Hero heroArray[], int len)
{
for (int i = 0; i < len - 1; i++)
{
for (int j = 0; j < len - i - 1; j++)
{
if (heroArray[j].age > heroArray[j + 1].age)
{
struct Hero temp = heroArray[j];
heroArray[j] = heroArray[j + 1];
heroArray[j + 1] = temp;
}
}
}
}
void printHero(struct Hero heroArray[],int len)
{
cout << "排序後輸出" << endl;
for (int i = 0; i < len; i++)
{
cout << "姓名:" << heroArray[i].name << "年齡:"
<< heroArray[i].age << "性別:"
<< heroArray[i].sex << endl;
}
}
int main()
{
//2.創建數組存放五名英雄
int len = sizeof(heroArray) / sizeof(heroArray[0]);
cout << "排序前輸出" << endl;
for (int i = 0; i < len; i++)
{
cout << "姓名:" << heroArray[i].name << "年齡:"
<< heroArray[i].age << "性別:"
<< heroArray[i].sex << endl;
}
//3.對數組進行排序,按年齡進行升序排序
bubbleSort(heroArray, len);
//4.將排序後結果打印輸出
printHero(heroArray, len);
system("pause");
}
運行結果: