啃掉C++:基于结构体的某一数据的结构体排序

题目

按照每个人的年龄给他们排序

代码

首先创建结构体
其次运用冒泡排序
最后打印输出

//指针的定义和使用
#include<iostream>
using namespace std;
#include<string>

struct hero{
    string name;
    int age;
    char sex;
};
// 冒泡排序
void bubble(hero s[],int len){
    hero temp;
    for(int i=0;i<len-1;i++){
        for(int j=0;j<len-1-i;j++){
            if (s[j].age>s[j+1].age){
                temp=s[j];
                s[j]=s[j+1];
                s[j+1]=temp;
            }
        }
    }

}
// 打印输出
void display(hero s[],int len){
    for(int i=0;i<len;i++){
        cout<<" name= "<<s[i].name;
        cout<<" age=  "<<s[i].age;
        cout<<" sex=  "<<s[i].sex<<endl;
        
    }
    cout<<"----------------------"<<endl;
}
int main(){
    hero s[]={
        {"ppp",20,'m'},
        {"jjj",19,'y'},
        {"sss",20,'y'},
        {"qqq",23,'y'},
        {"dsd",21,'m'}
    };
    int len=sizeof(s)/sizeof(s[1]);
    display(s,len);
    bubble(s,len);
    // 这里传入的是数组的地址,所以不需要考虑到底是实参还是形参
    display(s,len);

    system("pause");
    return 0;
}
posted @ 2021-04-23 18:14  Zeker62  阅读(40)  评论(0编辑  收藏  举报