就是给出五个英雄的信息,然后以他们的年龄为依据,进行人物信息的冒泡排序,结果就没有输出(有示意)


#include<iostream>
#include<string>
using namespace std;
struct hero
{
    //姓名
    string name;
    //年龄
    int age;
    //性别
    string sex;
};

//用函数输入信息
void sj(struct hero hArray[5], int len)
{
    hArray[0].name = "刘备"; hArray[0].age = 23; hArray[0].sex = "男";
    hArray[1].name = "关羽"; hArray[1].age = 22; hArray[1].sex = "男";
    hArray[2].name = "张飞"; hArray[2].age = 20; hArray[2].sex = "男";
    hArray[3].name = "赵云"; hArray[3].age = 21; hArray[3].sex = "男";
    hArray[4].name = "貂蝉"; hArray[4].age = 19; hArray[4].sex = "女";
}
//用循环函数打印结果
void print(struct hero hArray[5], int len)
{
    for (int i = 0; i < 5; i++)
    {    
        cout <<" 英雄姓名;" <<hArray[i].name<< " 英雄年龄;" << hArray[i].age << " 英雄性别;" << hArray[i].sex << endl;
    }
}
int main()
{
    struct hero hArray[5];
    //用函数进行冒泡排序
    int len = sizeof(hArray) / sizeof(hArray[0]);
    for (int i = 0; i < len; i++)
    {
        for (int j = 0; j < len - i - 1; j++)
        {
            if(hArray[j].age>hArray[i+1].age)
            {
                struct  hero temp = hArray[j];
                hArray[j] = hArray[j + 1];
                hArray[j + 1] = temp;
            }
        }
    }
    print(hArray, len);
    return(0);
}

我的错误输出为
英雄姓名; 英雄年龄;-858993460 英雄性别;
英雄姓名; 英雄年龄;-858993460 英雄性别;
英雄姓名; 英雄年龄;-858993460 英雄性别;
英雄姓名; 英雄年龄;-858993460 英雄性别;
英雄姓名; 英雄年龄;-858993460 英雄性别;

你没调用sj函数
在main中,创建hero数组后,添加sj(hArray, 5);初始化对应内容即可
有帮助望采纳~