VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 986|回复: 0

[分享] c++结构体实战练习(冒泡排序)

[复制链接]
13_avatar_middle
最佳答案
1 
在线会员 发表于 2022-1-10 17:23:45 | 显示全部楼层 |阅读模式
VS2019
包含头文件
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
复制代码

定义6名英雄结构体--打乱英雄年龄--之后进行排序

英雄的结构体
  1. struct Hero
  2. {
  3.         //姓名
  4.         string name;
  5.         //年龄
  6.         int age;
  7.         //性别
  8.         string sex;
  9. };
复制代码


2:在main函数中
创建数组存放6名英雄
  1. struct Hero heroArray[6] =
  2.         {
  3.                 {"刘备",23,"男"},
  4.                 {"关羽",25,"男"},
  5.                 {"张飞",38,"男"},
  6.                 {"赵云",26,"男"},
  7.                 {"黄总",36,"男"},
  8.                 {"貂蝉",27,"女"}
  9.         };
复制代码


测试打印下有没有错误
  1. int len = sizeof(heroArray) / sizeof(heroArray[0]);
  2.         for (int i = 0; i < len; i++)
  3.         {
  4.                 cout << "姓名: " << heroArray[i].name << " 年龄:" << heroArray[i].age << " 性别:" << heroArray[i].sex << endl;
  5.         }
复制代码

没错先注释下

3:
  1. void Herosort(struct Hero heroArray[], int len)
  2. {
  3.         for (int i = 0; i < len - 1; i++)
  4.         {
  5.                 for (int j = 0; j < len - 1 - i; j++)
  6.                 {
  7.                         if (heroArray[j].age > heroArray[j + 1].age)
  8.                         {
  9.                                 struct Hero temp = heroArray[j];
  10.                                 heroArray[j] = heroArray[j + 1];
  11.                                 heroArray[j + 1] = temp;
  12.                         }
  13.                 }
  14.         }
  15. }
复制代码
继续写:按照英雄的年龄进行升序排序

4:打印输出所有英雄  并按照年龄进行升序排列
  1. void printHero(struct Hero heroArray[], int len)
  2. {
  3.         cout << "排序后:" << endl;
  4.         for (int i = 0; i < len; i++)
  5.         {
  6.                 cout << "姓名: " << heroArray[i].name << " 年龄:" << heroArray[i].age << " 性别:" << heroArray[i].sex << endl;
  7.         }
  8. }
复制代码


完整代码:
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;

  4. //英雄的结构体
  5. struct Hero
  6. {
  7.         //姓名
  8.         string name;
  9.         //年龄
  10.         int age;
  11.         //性别
  12.         string sex;
  13. };

  14. //英雄排序
  15. void Herosort(struct Hero heroArray[], int len)
  16. {
  17.         for (int i = 0; i < len - 1; i++)
  18.         {
  19.                 for (int j = 0; j < len - 1 - i; j++)
  20.                 {
  21.                         if (heroArray[j].age > heroArray[j + 1].age)
  22.                         {
  23.                                 struct Hero temp = heroArray[j];
  24.                                 heroArray[j] = heroArray[j + 1];
  25.                                 heroArray[j + 1] = temp;
  26.                         }
  27.                 }
  28.         }
  29. }

  30. //打印所有英雄信息,并进行升序排序输出
  31. void printHero(struct Hero heroArray[], int len)
  32. {
  33.         cout << "排序后:" << endl;
  34.         for (int i = 0; i < len; i++)
  35.         {
  36.                 cout << "姓名: " << heroArray[i].name << " 年龄:" << heroArray[i].age << " 性别:" << heroArray[i].sex << endl;
  37.         }
  38. }
  39. int main()
  40. {
  41.        
  42.         //2.创建数组存放6名英雄
  43.         struct Hero heroArray[6] =
  44.         {
  45.                 {"刘备",23,"男"},
  46.                 {"关羽",25,"男"},
  47.                 {"张飞",38,"男"},
  48.                 {"赵云",26,"男"},
  49.                 {"黄总",36,"男"},
  50.                 {"貂蝉",27,"女"}
  51.         };
  52.         int len = sizeof(heroArray) / sizeof(heroArray[0]);
  53.         cout << "排序前:" << endl;
  54.         for (int i = 0; i < len; i++)
  55.         {
  56.                 cout << "姓名: " << heroArray[i].name << " 年龄:" << heroArray[i].age << " 性别:" << heroArray[i].sex << endl;
  57.         }
  58.         Herosort(heroArray, len);
  59.         //打印所有英雄信息,并进行升序排序输出
  60.         printHero(heroArray, len);
  61.         system("pause");
  62.         return 0;
  63. }
复制代码






上一篇:c++结构体实例(实战练手)加深理解
下一篇:c++文件操作练手记录
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2023-12-8 17:53

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表