结构体案例

学习目标:

理解并实现冒泡排序算法,加强写方法的好习惯,理解结构体数组及地址传递

案例描述:

设计一个英雄的结构体,包括成员姓名,年龄,性别;创建结构体数组,数组中存放5名英雄。
通过冒泡排序的算法,将数组中的英雄按照年龄进行升序排序,最终打印排序后的结果。

五名英雄信息如下:
{“刘备”,23,“男”},
{“关羽”,22,“男”},
{“张飞”,20,“男”},
{“赵云”,21,“男”},
{“貂蝉”,19,“女”},

实现代码:

#include <iostream>
#include <string>using namespace std;struct hero
{string name;int age;string sex;
};void allocateSpace(hero heroarr[], int heroarrlength)
{string heroname[] = { "刘备","关羽","张飞","赵云","貂蝉" };int heroage[] = { 23,22,20,21,19 };string herosex[] = { "男","男","男","男","女" };for (int i = 0; i < heroarrlength; i++){heroarr[i].name = heroname[i];heroarr[i].age = heroage[i];heroarr[i].sex = herosex[i];}
}void BubbleSort(hero heroarr[], int heroarrlength)
{for (int i = 0; i < heroarrlength - 1; i++){for (int j = 0; j < heroarrlength - 1 - i; j++){if (heroarr[j].age > heroarr[j + 1].age){struct hero temp1 = heroarr[j];heroarr[j] = heroarr[j + 1];heroarr[j + 1] = temp1;}}}
}void printdate(hero heroarr[], int heroarrlength)
{cout << "按年龄冒泡排升序后,输出如下:" << endl;for (int i = 0; i < heroarrlength; i++){cout << "英雄名字:" << heroarr[i].name << " "<< "英雄年龄:" << heroarr[i].age << " "<< "英雄性别:" << heroarr[i].sex << endl;}
}int main()
{struct hero heroarr[5];int heroarrlength = sizeof(heroarr) / sizeof(heroarr[0]);allocateSpace(heroarr, heroarrlength);BubbleSort(heroarr, heroarrlength);printdate(heroarr, heroarrlength);system("pause");return 0;
}

运行结果:

利用C++写一个三国人物英雄按年龄排序的案例相关推荐

  1. 利用Flutter写一个跨平台的果核APP(4)——数据存储

    前言 目前我们已经实现了几个界面,今天这篇文章开始着手进行登录页的制作,主要流程就是获取输入框中的内容,发送给后台进行验证,如果成功将返回信息保存在本地并跳转至首页,如果失败就提示用户重新输入. 在这 ...

  2. 学了C语言,如何利用CURL写一个下载程序?—用nmake编译CURL并安装

    在这一系列的前一篇文章学了C语言,如何为下载狂人写一个磁盘剩余容量监控程序?中,我们为下载狂人写了一个程序来监视磁盘的剩余容量,防止下载的东西撑爆了硬盘.可是,这两天,他又抱怨他的下载程序不好用,让我 ...

  3. 简单的面向对象思想,写一个传奇人物的属性

    简单的面向对象思想,写一个传奇人物的属性 package com.hz.game;import java.util.Random;/*** //hat,weapon,necklace,ring,clo ...

  4. 利用python写一个简单的双色球彩票系统

    利用python写一个简单的双色球彩票系统 1.设置每次买的号码一样 写一个双色球彩票系统,系统可以随机产生一组数据,一组彩票数据有六位数,这六位数的的取值范围是0和1. 一张彩票是两块钱,用户可以选 ...

  5. python抽奖游戏_利用Python写一个抽奖程序,解密游戏内抽奖的秘密

    原标题:利用Python写一个抽奖程序,解密游戏内抽奖的秘密 前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 极客 ...

  6. 利用Cocos2d-x写一个程序读取传奇wzl文件

    Cocos2d-x是一个用于游戏开发的开源框架,它提供了用于制作2D游戏的工具和功能.若要利用Cocos2d-x读取传奇wzl文件,需要对wzl文件的格式进行分析,并使用Cocos2d-x提供的读取文 ...

  7. 利用itchat写一个聊天机器人

    利用itchat写一个聊天机器人 聊天机器人 图灵机器人 需要的库 **自动回复私聊消息** **自动回复群聊消息** 结语: 聊天机器人 偶然在CSDN上看到大佬用20行教你写一个聊天机器人,觉得甚 ...

  8. 利用Flutter写一个跨平台的果核APP(0)——介绍

    前言 今年2月的时候,Google在开发者大会上推出了flutter的第一个预览版,我是在3月左右的时候才了解到这个全新的跨平台框架,并在阅读了相关文档之后写了一篇<你好,Flutter> ...

  9. 【c语言写计算器】利用函数写一个计算器 包括菜单功能和加减乘除四个功能

    /*利用函数写一个计算器 包括菜单功能和加减乘除四个功能 作者:NBDR_YL*/ #include<stdio.h>int mean(void); //声明菜单的函数 float add ...

最新文章

  1. awk中的NR和FNR
  2. Xamarin SQLite教程数据库访问与生成
  3. 搞懂分布式技术16:浅谈分布式锁的几种方案
  4. LeetCode 213 House Robber II Python
  5. 阅读目录(置顶)(长期科技领域知识)
  6. Linux添加用户并赋予/取消管理员权限
  7. OAuth2.0(基于django2.1.2实现版本)
  8. C#两路list数组归并去重
  9. 用php写一个user类,使用php怎么编写一个用户查询类
  10. 管理员取得所有权限.reg
  11. html可视区高度,你真的懂js获取可视区宽高吗
  12. 软考:数据库系统工程师
  13. Dreamweaver cs6 网页设计教程笔记
  14. Openwrt GCC 7.5编译sanitizer_internal_defs.h错误
  15. c#语言模拟键盘输入,C#模拟键盘按键的三种方式实现
  16. 不带www的域名强制跳转到www域名,Nginx服务器rewrite重写
  17. 第六期 自定义IP添加-PWM 基于ARTY A7的MicroBlaze系统搭建与应用
  18. MOSFET原理学习
  19. clean kernel
  20. 未名湖边的烦恼引起的递归问题探讨

热门文章

  1. python温度转换代码示例_python温度转换华氏温度实现代码
  2. php soap https 登录 复杂请求 上海资信 金融p2p Error cannot find parameter faultstringFunction ' not found
  3. 线程池shutdown和shutdownNow原理和区别
  4. 鞘氨醇-1-磷酸的生物学作用
  5. 全球wcdma运营频段
  6. vive定位器突然闪红灯
  7. 极验验证(滑动验证)的使用
  8. 关于ubuntu16.04 安装过程中卡住问题解决方法
  9. 接雨水---LeetCode----(20)--左右夹逼法
  10. 智能工厂需要哪些条件和技术?