6.8重学C++之【结构体-案例#2】

#include<iostream>
#include<string>
using namespace std;


/*
    结构体-案例#2
    三国英雄:5名英雄,通过冒泡排序按照年龄升序排列
*/


struct Hero{
    string name;
    int age;
    string sex;
};


void bubble_sort(struct Hero hero_array[], int len){
    for (int i=0; i<len-1; i++){ // i<len-1
        for (int j=0; j<len-1-i; j++){ // j<len-1-i
            if (hero_array[j].age > hero_array[j+1].age){
                struct Hero temp = hero_array[j];
                hero_array[j] = hero_array[j+1];
                hero_array[j+1] = temp;
            }
        }
    }
}


void print_hero(struct Hero hero_array[], int len){
    cout << "排序后:" << endl;
    for (int i=0; i<len; i++){
        cout << "姓名:" << hero_array[i].name << ",年龄:" << hero_array[i].age << ",性别:" << hero_array[i].sex << endl;
    }
}


int main(){
    struct Hero hero_array[5] = {
        {"刘备", 23, "男"},
        {"关羽", 22, "男"},
        {"张飞", 20, "男"},
        {"赵云", 21, "男"},
        {"貂蝉", 19, "女"}, // 注意此处最后一项后加逗号或者不加效果一样,都行
    };

    int len = sizeof(hero_array) / sizeof(hero_array[0]);

    cout << "排序前:" << endl;
    for (int i=0; i<len; i++){
        cout << "姓名:" << hero_array[i].name << ",年龄:" << hero_array[i].age << ",性别:" << hero_array[i].sex << endl;
    }

    bubble_sort(hero_array, len);  // 值传递!?实参根据形参变了?!
    print_hero(hero_array, len);

    return 0;
}

posted @   yub4by  阅读(35)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示