#include<stido.h>
#include<string.h>
//英雄结构体的创建
typedef struct hero {
char name;
int age;
char sex;
}hr;
//冒泡排序,按照英雄年龄的升序排序
void bubblesort(hr *h1, int len)
{
for (int i = 0; i < len-1; i++) {
for (int j = 0; j < len - 1 - i;j++)
{
if (h1[j].age > h1[j + 1].age) //英雄的年龄用来判断
{
//单个英雄的整体数组信息进行排序
hr temp = h1[j];
h1[j] = h1[j+1];
h1[j + 1] = temp;
}
}
}
}
//英雄打印的输出
void printt(hr* h1,int len)
{
for (int i = 0; i < len; i++) {
printf("英雄的姓名:%c,性别:%c 年龄:%d\n",h1[i].name,h1[i].sex,h1[i].age );
}
}
int main() {
hr h1[5]{
{'刘备',23,'男'},
{'关羽',22,'男'},
{'张飞',20,'男'},
{'赵云',21,'男'},
{'貂蝉',19,'男'}
};
bubblesort(h1,sizeof(h1)/sizeof(h1[0]));
printt(h1, sizeof(h1) / sizeof(h1[0]));
}
输出结果
有大佬知道为什么会这样和如何解决么😥