数组--习题讲解_第1页
数组--习题讲解_第2页
数组--习题讲解_第3页
数组--习题讲解_第4页
数组--习题讲解_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数组数组沈标标2014-12-19知识点 数组的定义、初始化、引用方法 与数组相关的常用算法(如冒泡排序、选择排序和二分查找法等) 重点理解算法思想,编写程序时注意数组下标临界值 字符数组的概念和字符串处理函数的编写和使用 注意:对于字符数组的处理,建议在最后加上0,便于统一处理; 区分sizeof和strlen 数组作为函数参数和调用函数处理数组 知道如何将数组作为函数参数进行传递特性(vs 链表) 所有元素按行优先规则连续存储连续存储 随机存取 不适用于插入、删除操作较多的情况部分习题分析 数组基本操作: 向数组中插入一个元素 注意:移动元素时从最后一个元素最后一个元素开始自右向左往后往后

2、移动 插入排序 从数组中删除一个元素 移动元素时从要删除元素之后的那个元素开始自左向右往前往前移动部分习题分析 字符串基本操作: udf_strcat(s,t):实现两个字符串连接(将t连接到s上) 注意: 首先要保证s数组的空间足够大到可以容纳s和t中的所有字符+1 区别sizeof(t)和strlen(t) 字符串连接操作结束后,记得在新s之后的最后一个元素加上0 udf_strcpy(d,s):实现字符串复制(将s复制到d上) 注意: 保证d数组的空间可以容纳s数组中的所有字符 字符串查找 如“how are you”中查找”are”的位置部分习题分析 随机数 C语言中用于产生随机数的随

3、机函数rand(),包含在头文件stdlib.h中 rand()函数可以生成0RAND_MAX之间的一个随机数,对于一个特定的随机种子,rand()产生的随机序列是确定的,故其产生的不是实际意义上的随机数,而是伪随机数 srand()函数用于改变随机生成器的随机种子,只要随机种子不同,rand()函数对应的随机序列即不同 对srand()的两种常用方法: 取时间作为种子,srand(unsigned)time(NULL) 选取一个任意值给定,scanf(“%d”,&seed);srand(seed); 因为rand()函数产生数的范围较大,故平时使用可借助求余操作生成指定范围内的随机数

4、,如rand()%100,产生0100以内的随机数部分习题分析 约瑟夫问题 使用数组求解 方法一:每找到第m个数,删除那个数,并将后面的所有数字往前移 方法二:没找到第m个数,将数组该位置的数置为0,下次再遍历时跳过数组元素值为0的元素 因为数组删除需要移动大量元素,因此,方法二较好 使用链表求解 链表每访问一个元素需要从头顺序遍历,而删除操作不需要移动元素,故对链表来说,方法一更好实验问题总结 格式化输入输出问题 因为浮点数、整数等在计算机中存储方式不同,故设计输入输出时一定要对应 int - %d、%i, float - %f, double -%lf 输入时忘记取地址符 scanf(“%d”,&a) - scanf(“%d”,a); 容易造成非法地址访问的错误实验问题总结 数组使用 数组使用必须先初始化再使用 在编写选择、冒泡等排序算法

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论