11 复杂数据类型及排序
更新时间:2023-05-24 19:31:01 阅读量: 实用文档 文档下载
- 11月份是什么星座推荐度:
- 相关推荐
11 复杂数据类型及排序
第十一章
复杂数据类型及排序
Version 3.0
11 复杂数据类型及排序
回顾 上一节课主要讲解了以下内容: 上一节课主要讲解了以下内容:– – – – – – 字符串变量和常量 字符串指针 执行字符串的输入/输出操作 各种字符串函数 如何将数组作为参数传递给函数 如何将字符串用作函数参数
11 复杂数据类型及排序
目标 2-1 3
解释结构体及它们的使用 定义结构体 声明结构体变量 解释如何访问结构体元素 解释如何初始化结构体 解释结构体中使用的赋值语句 解释如何将结构体作为参数传递给函数 使用结构体数组 解释结构体数组的初始化
11 复杂数据类型及排序
目标 2- 2 解释结构体指针 解释如何将结构体指针作为参数传递给函数 解释 typedef 关键字 解释如何使用插入排序法和冒泡排序法对数 组进行排序
11 复杂数据类型及排序
结构体 结构体由许多组织在一起的数据项组成,这 结构体由许多组织在一起的数据项组成, 些数据项不需要属于同一类型 结构体可以容纳需要的任意多数据项1 变量 I I L L U S I O N B A C H 1 L L U 作者 版次 S I O N 数组
11 复杂数据类型及排序
定义结构体 结构体定义形成了创建结构体变量的模板 结构体中的变量称为结构体元素或结构体成 员 示例: 示例:struct cat { char bk_name [25]; char author [20]; int edn; float price; };6
11 复杂数据类型及排序
声明结构体变量 一旦定义了结构体,就可以声明一个或多个 一旦定义了结构体, 该类型的变量 示例:struct cat books1; 示例: 这条语句将会预留足够的内存来存放该结构 体中的所有项struct cat { char bk_name[25]; char author[20]; int edn; float price; } books1, books2; struct cat books1, books2; 或 struct cat books1; struct cat books2;
11 复杂数据类型及排序
访问结构体元素 结构体元素通过使用点运算符(.)来引用, 结构体元素通过使用点运算符( )来引用, 这个运算符也称为成员运算符 语法: 语法: structure_name.element_name 为结构体名称, 其中 structure_name 为结构体名称, element_name为元素名称。 为元素名称。 为元素名称 示例: 示例: scanf("%s", books1.bk_name);8
11 复杂数据类型及排序
初始化结构体 与变量和数组一样,结构体变量也可以在声明时 与变量和数组一样, 初始化 struct employee { int no; char name [20]; } employee 类型的变量 emp1 和 emp2 可以按照下面 的方式进行声明和初始化: 的方式进行声明和初始化: struct employee emp1 = {346, "Abraham"}; struct employee emp2 = {347, "John"};9
11 复杂数据类型及排序
结构体中使用的赋值语句2结构体中使用的赋值语句 1 可以使用一条简单的赋值语句将一个结构体 变量的值赋给另一个相同类型的结构体变量 例如,如果 books1 和 books2 是同一类型的 例如, 结构体变量,那么下列语句是有效的: 结构体变量,那么下列语句是有效的: books2 = books1;
11 复杂数据类型及排序
结构体的赋值
语句2结构体的赋值语句 2 在不能进行直接赋值的情况下,可以使用内 在不能进行直接赋值的情况下, 置函数 memcpy() 语法: 语法: memcpy (char * destn, char &source, int nbytes); 示例: 示例: memcpy (&books2, &books1, sizeof(struct cat));
11 复杂数据类型及排序
结构体内的结构体 可以将一个结构体放入另一个结构体内。结构体不能嵌套 可以将一个结构体放入另一个结构体内。 它自身 struct issue { char borrower [20]; char dt_of_issue[8]; struct cat books; }issl; 访问结构体元素的格式与访问正常的结构体类似, 访问结构体元素的格式与访问正常的结构体类似, issl.borrower 要访问结构体 cat 的元素,而cat 是另一个结构体 issue 的 的元素, 一部分, 一部分,应使用下列语句 issl.books.author12
11 复杂数据类型及排序
将结构体作为参数进行传递 结构体变量可以作为参数传递给函数 使用这种方式可以将一组逻辑上相关的数据 项一起传递, 项一起传递,而不是逐个传递 变量的类型应该与参数的类型相匹配
11 复杂数据类型及排序
结构体数组 结构体的一种常见用法是采用结构体数组的 形式 首先定义结构体,然后声明该类型的数据变 首先定义结构体, 量 示例: 示例: struct cat books[50]; 访问数组 books 的第五个元素中的变量 author: : books[4].author14
11 复杂数据类型及排序
结构体数组的初始化 结构体数组是通过用一对大括号将其元素值列表 括起来进行初始化的 示例: struct unit 示例:{ char ch; int i; } struct unit series [3] = { {'a', 100} {'b', 200} {'c', 300} }
11 复杂数据类型及排序
结构体指针 结构体指针是通过在结构体变量名前放置一 个星号( ) 个星号(*)来进行声明的 -> 运算符用于通过指针来访问结构体的元素 示例: 示例: struct cat *ptr_bk; ptr_bk = &books; printf("%s", ptr_bk->author); 将结构体作为参数传递给函数使得该函数可 以直接修改结构体元素16
11 复杂数据类型及排序
typedef 关键字 可以使用 typedef 关键字来定义新的数据类 型名 它并没有新建数据类型,而只是为已有的类 它并没有新建数据类型, 型定义新的名字 语法: 语法: typedef type name; 示例: 示例: typedef float deci; typedef 不能用于存储类17
11 复杂数据类型及排序
数组排序 排序需要将数组中的数据按照指定的顺序 如升序或者降序) (如升序或者降序)进行排列 有两种方式来对数组进行排序:插入排序法 有两种方式来对数组进行排序: 和冒泡排序法 在插入排序法中,检查数组中的每个元素, 在插入排序法中,检查数组中的每个元素, 将它插入排序的元素中的适当位置 在冒泡排序法中,从最底部的元素开始进行 在冒泡排序法中, 比较, 比较,较小的元素会向上冒18
11 复杂数据类型及排序
冒泡排序法3冒泡排序法 1
将最少的数排在最 上面, 上面,就像冒泡 一样
11 复杂数据类型及排序
冒
泡排序法3 冒泡排序法 - 2#include <stdio.h> void main() 需要排序的 数组 { int i, j, temp, arr_num[5] = { 23, 90, 9, 25, 16}; clrscr(); for(i=3;i>=0;i--) /* Tracks every pass */ for(j=4;j>=4-i;j--) /* Compares elements */ { if(arr_num[j]<arr_num[j-1]) { temp=arr_num[j]; arr_num[j]=arr_num[j-1]; 交换数 arr_num[j-1]=temp; } } 待续…… 待续20
11 复杂数据类型及排序
冒泡排序法 3- 3输出排序后的结果
printf("\nThe sorted array"); for(i=0;i<5;i++) printf("\n%d", arr_num[i]); getch(); }
正在阅读:
11 复杂数据类型及排序05-24
2022高考人教数学大一轮复习检测:第九章 第一节 随机抽样 Word04-10
高中物理知识点实用口诀10-01
鄂建文103号 关于加强高强预应力混凝土管桩质量控制管理的通知 PHC09-27
7S教育训练简明教材 - 图文06-12
美丽的龙津公园作文400字06-20
卫生监督系统解放思想大讨论-个人01-12
实习就业处会议纪要03-15
路面抗滑性能测试方法及评价指标08-29
授权签字人考试题12-26
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 排序
- 复杂
- 类型
- 数据
- 11
- HR对简历的要求与隐性要求
- 四川大学锦城学院财会系毕业论文格式
- 第一章-有理数单元测试题及答案
- 数学竞赛辅导讲座:同余
- 2014年秋季期中考试总结表彰大会教导主任发言稿
- 科学发展是林业经济的支撑点
- 2014-2015学年甘肃省金川公司第二高级中学高一上学期期中考试历史试题
- 工程流体力学_在环境工程学科中的作用浅析
- 我叫MT2俺哥和劣人哪个好 英雄全方位详细对比分析
- 冀教版六年级科学上册总复习题 姓名
- 第十六讲 社会进步与人的全面发展
- Ⅱ类水处理工考试题库(2011)
- 体验商务英语3 U11 Ethics
- 基于新Web标准下的DIV_CSS网页布局方法探讨
- 关于工程质量事故分类
- 浅析社会调查中的定性研究方法
- 关于高校青年教师师德建设问题的思考
- 机械回填土技术交底
- 优秀学生奖学金评选实施细则
- 为不断开拓与创新土壤学研究新前沿__18届国际土壤学大会情况综合报道_