版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、千锋千锋3G嵌入式移动互联网技术研发中心嵌入式移动互联网技术研发中心 主讲老师: 欢迎您到(千锋学院)来学习欢迎您到(千锋学院)来学习!数组专题数组专题千锋千锋3G嵌入式移动互联网技术研发中心嵌入式移动互联网技术研发中心 内容摘要 基本概念和定义 用法和常见错误 应用实例:计算向量内积 应用实例:统计随机数 应用实验:直方图 多维数组应用 适用范围和不适用情况 描雷游戏千锋千锋3G嵌入式移动互联网技术研发中心嵌入式移动互联网技术研发中心www.
2、 基本概念和定义 一种复合数据类型,用于存储一组相同类型一组相同类型的元素。 定义方法int count4;int count = 1,2,3,4; / 编译器会计算长度struct studentchar* name;int age;classSaif10; / 10个学生 千锋千锋3G嵌入式移动互联网技术研发中心嵌入式移动互联网技术研发中心 用法和常见错误 随机访问:counti i=0,1.length-1count0 = 7;counti+1
3、= counti * 2;+count2; 错误:数组相互赋值int a5 = 4, 3, 2, 1 ; / 定义数组aint b5 = a;/ 错误,把数组a赋值给数组b 错误:用数组类型作为函数的参数或返回值 用全局数组或指针替代千锋千锋3G嵌入式移动互联网技术研发中心嵌入式移动互联网技术研发中心 用法和常见错误 练习:创建一个长度为100的整形数组,分别给元素赋值为0,1,2,3 98,99 练习:创建一个长度为100的整形数组,分别给元素值为50,51,52 98,99,0,1,2,3 47,48,49 练习:
4、创建两个长度为100的整形数组 a 和 b, 给 a 赋上初值,然后把 a 里面每个元素的值复制到 b 里。 练习:创建一个长度为10的字符型数组,初始化为abcdefghij 后打印出各个元素; 然后把 a 里面的元素首尾到置过来,并打印。千锋千锋3G嵌入式移动互联网技术研发中心嵌入式移动互联网技术研发中心 用法和常见错误 计算数组长度 用数组大小除以元素大小千锋千锋3G嵌入式移动互联网技术研发中心嵌入式移动互联网技术研发中心 用法和常见错误
5、 错误:下标越界,小于0或大于length-1,运行时出严重错误,不易发现原因for(i = 0;i0 & indexlength) /检查下标范围countindex+;千锋千锋3G嵌入式移动互联网技术研发中心嵌入式移动互联网技术研发中心 用法和常见错误千锋千锋3G嵌入式移动互联网技术研发中心嵌入式移动互联网技术研发中心 应用实例:计算向量内积 计算平面向量 a(1,1) 和 b(3,0) 的内积int a2 = 1,1;int b2 = 3
6、,0;int cc = 0;for(i = 0;i2;i+)c += ai*bi; 空间向量 a(1,1,1) 和 b(2,5,3),怎么计算夹角呢? 提示:先计算内积,再求反余弦千锋千锋3G嵌入式移动互联网技术研发中心嵌入式移动互联网技术研发中心 应用实例:统计随机数 使用C语言可以产生伪随机数,用于数学计算int x = rand()%10; 设定种子,每次都产生不同的伪随机数序列srand( time(NULL) ); 思考与练习 不设定种子,产生10个伪随机数,运行多次比较结果 设定种子,产生10个伪随机数,运
7、行多次比较结果 怎样产生 1019 的伪随机数? 怎么产生 01 内的随机小数呢? 了解:产生泊松分布,高斯分布千锋千锋3G嵌入式移动互联网技术研发中心嵌入式移动互联网技术研发中心 应用实例:统计随机数 使用rand()产生10以内的随机整数,怎么验证随机性呢? 人工记录,产生100个并统计每一个数出现次数是否几乎相同 写程序验证,使用数组来记录每次产生的数 最后统计并打印出各个数出现次数,进行比较for(int i=0; iN; i+)ai = rand()%10; 练习,实验代码见课本P103 产生100个随机数,
8、随机性怎么样? 产生1000个随机数呢? 10000,100000呢? 样本越大,各个数出现的次数越趋近相等千锋千锋3G嵌入式移动互联网技术研发中心嵌入式移动互联网技术研发中心 应用实验:直方图 用数组记录上一节中各个数出现的次数,以作处理。 int main( void ) int howmanyones = howmany( 1); int howmanytwos = howmany( 2 ); int main( void ) int i, histogram10=0; gen_random(10); for(i
9、 = 0; i N; i+) histogramai +; 千锋千锋3G嵌入式移动互联网技术研发中心嵌入式移动互联网技术研发中心 数组应用 创建一个长度为 20 的整形数组,用 100 以内的随机数初始化每个元素; 然后对整个数组按元素从小到大排序。 创建一个长度为 20 的整形数组,用 100 以内的随机数初始化每个元素; 然后计算平均数和均方差。 创建一个长度为 1000 的整形数组,用 100 以内的随机数初始化每个元素; 查找大于等于 20 并小于 30 的元素个数。 创建一个长度为 100 的字符型数组,随机
10、生成一个 az 范围内的字符来初始化所有元素,并在数组里查找 a 出现的次数。千锋千锋3G嵌入式移动互联网技术研发中心嵌入式移动互联网技术研发中心 多维数组应用 数组嵌套,一个数组的元素是另外一个数组int a32 = 1, 2, 3, 4, 5 ; / a0 是一个数组int a2 = 1, 2 , 3, 4 , 5, ; / a00=1千锋千锋3G嵌入式移动互联网技术研发中心嵌入式移动互联网技术研发中心 多维数组应用 应用:存储矩阵,用于解
11、多元方程组 Double a34 = 1, 2, 3, 5 , /x1 + 2x2 + 3x3 = 5; 2, 3, 3, 7 , /2x1 + 3x2 + 3x3 = 7; 5, 8, 6, 10; /5x1 + 8x2 + 6x3 =10; 经消元得到下三角矩阵 a 1, 0, 0, 8, 1, 1, 0, 2, 5, 8, 6, 10 行交换 交换两个子数组的每个元素 行加减 两个子数组的每个元素分别加减千锋千锋3G嵌入式移动互联网技术研发中心嵌入式移动互联网技术研发中心 多维数组应用 遍历 aNM 行优先for
12、(i = 0; iN; i+) for(j = 0; jM; j+) aij +; 列优先for(j = 0; jM; j+) for(i = 0; iN; i+) aij +; 思考:哪个性能更好一些?为什么?提示:哪个缓存命中率高?能否用这个办法测量缓存?千锋千锋3G嵌入式移动互联网技术研发中心嵌入式移动互联网技术研发中心 适用范围和不适用情况 适用范围 大量数据,类型相同 需要快速随机访问 不适用情况 在数组中动态插入和删除元素,效率低下 数组的大小频繁变化 稀疏矩阵,浪费空间a00fedc0fedcb千锋千锋3G嵌入式移动互联网技术研发中心嵌入式移动互联网技术研发中心 描雷游戏 大练习:带领同学用二维数组来写一个简单的描雷程序 用5*5的二维数组表示地图 随机生成有雷的位置 未知的坐标用 ? 表示 玩家从键盘输入一个坐标 如果这个位置上无雷,就显示出上下左右总雷数 获胜:玩家把非雷位置全部探测出来 失败:玩家触雷千锋千锋3G嵌入式移动互联网技术研发中心嵌入式移动互联网技术研发中心 www.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农村库房施工合同范例
- 商丘工学院《城市环境与城市生态建筑》2023-2024学年第一学期期末试卷
- 汕尾职业技术学院《工程估价》2023-2024学年第一学期期末试卷
- 万达广场股权转让合同范例
- 一般劳动合同范例
- 2024至2030年橘子蜡烛项目投资价值分析报告
- 神农架外墙清洗合同范例
- 过期肉鸡销售合同范例
- 陕西艺术职业学院《建筑设备自动化A》2023-2024学年第一学期期末试卷
- 舞阳租房合同范例
- 金融工程-厦门大学中国大学mooc课后章节答案期末考试题库2023年
- 西门子plc实训总结2000字(4篇)
- 人音版五年级上册音乐期末测试题
- 中国传统文化英语(课堂PPT)
- 加油站投资概算表
- 危险废物管理台账模板(附录B)(2)(3)里边一共五张表表一是产生的台账表二是入危废间填的表三和表五出危废间和转移时填的表四是有危废自行利用处置时填的
- 16CJ72-1 预制及拼装轻型板
- 抑郁相关疼痛机制性治疗
- 玻璃幕墙设计说明
- DL-T 1966-2019 火力发电厂机组检修监理规范
- 压力容器安全知识课件
评论
0/150
提交评论