请问一下,这个冒泡排序他最终的结果没有达到预期,但是程序本身可以运行,请问究竟是什么地方出错了??
我想做的程序是一个可以根据人物年龄将所有人物排序的程序
#include <iostream>
#include <string>
using namespace std;
struct hero {
string name;//姓名
int age;//年龄
string sex;//性别
};//定义英雄结构体
//定义冒泡排序函数
void BubbleSort(hero heroArray[],int len){
for (int i = 0; i < len; i++) {
for (int j = 0; j < i - 1; j++) {
if ( heroArray[j].age > heroArray[j + 1].age) {
hero temp = heroArray[j];
heroArray[j] = heroArray[j + 1];
heroArray[j + 1] = temp;
}
}
}
}
void PrintHero(struct hero heroArray[],int len) {
for (int i = 0; i < len; i++) {
cout << "姓名:" << heroArray[i].name << " 年龄:" << heroArray[i].age
<< " 性别:" << heroArray[i].sex << endl;
}
}
int main() {
//创建英雄结构体
hero heroArray[3] = {
{"张飞",20,"男"},
{"关羽",21,"男"},
{"貂蝉",18,"女"}
};
//计算数量
int len = sizeof(heroArray) / sizeof(heroArray[0]);
//排序,年龄从高到低
BubbleSort(heroArray,len);
//打印
PrintHero(heroArray, len);
system("pause");
return 0;
}