8、结构体案例2.cpp 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #include <iostream>
  2. //案例描述:
  3. //设计一个英雄的结构体,包括成员姓名、年龄、性别;创建结构体数组,数组中存放五名英雄。
  4. //通过冒泡排序的方法,将数组中的英雄按照年龄进行升序排序,最终打印排序后的结果。
  5. //五名英雄信息如下:
  6. //{ "刘备" ,23,"男" }
  7. //{ "关羽" ,22,"男" }
  8. //{ "张飞" ,20,"男" }
  9. //{ "赵云" ,21,"男" }
  10. //{ "貂蝉" ,19,"男" }
  11. //英雄的结构体
  12. struct Hero
  13. {
  14. //姓名
  15. std::string name;
  16. //年龄
  17. int age;
  18. //性别
  19. std::string sex;
  20. };
  21. //实现冒泡排序,年龄升序排列
  22. void bubbleSort(struct Hero heroArray[], int len)
  23. {
  24. for (int i = 0; i < len - 1; i++)
  25. {
  26. for (int j = 0; j < len - i - 1; j++)
  27. {
  28. //如果j下标的元素年龄 大于j+1下标的元素年龄,交换两个元素
  29. if (heroArray[j].age > heroArray[j + 1].age)
  30. {
  31. struct Hero temp = heroArray[j];
  32. heroArray[j] = heroArray[j + 1];
  33. heroArray[j + 1] = temp;
  34. }
  35. }
  36. }
  37. }
  38. //打印排序后的数组中的信息
  39. void printHero(struct Hero heroArray[], int len)
  40. {
  41. for (int i = 0; i < len; i++)
  42. {
  43. std::cout << "英雄的姓名:" << heroArray[i].name << "年龄:" << heroArray[i].age << "性别:" << heroArray[i].sex << std::endl;
  44. }
  45. }
  46. int main()
  47. {
  48. //2、创建一个数组存放五名英雄
  49. struct Hero heroArray[5] =
  50. {
  51. { "刘备" ,23,"男" },
  52. { "关羽" ,22,"男" },
  53. { "张飞" ,20,"男" },
  54. { "赵云" ,21,"男" },
  55. { "貂蝉" ,19,"女" },
  56. };
  57. int len = sizeof(heroArray) / sizeof(heroArray[0]);
  58. //for (int i = 0; i < len; i++)
  59. //{
  60. // std::cout << "英雄的姓名:" << heroArray[i].name << "年龄:" << heroArray[i].age << "性别:" << heroArray[i].sex << std::endl;
  61. //}
  62. //3、对数组进行排序,按照年龄进行升序排列
  63. bubbleSort(heroArray, len);
  64. //4、将排序后的结果打印输出
  65. printHero(heroArray, len);
  66. system("pause");
  67. return 0;
  68. }