- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c 语言第八次课
数组:
一组变量。
特点:
所有变量类型相同。
相同的数组名。
存储位置连续。
每个变量都是一个独立的个体。“%d”,a[i] ; main int i,a[10];
for i 0;i 10;i++
scanf “%d”,a[i] ; /*动态赋值*/
for i 0,i 10;i++
printf “%d”,a[i] ; 数组的初始化,可以在定义的时候给数组赋初值。
一般形式:
类型说明符 数组名[元素个数] 值1,值2,。。。。 ;
例:声明一个含有10个整型元素的数组au
int au[10] 1,2,3,4,5,6,7,8,9,0 ;
注意:
大括号中的元素值个数不能多于前面所声明的元素个数
每个元素值之间用逗号分隔。
每个元素的值应该跟元素一一对应。如果元素值少于元素个数,则没有对应在的元素值为0。 注意,自动赋值只能在初始化的时候使用
int a[5] 1,2 a[0] 1,a[1] 2,a[2]~a[4]都为0
如果所有的元素都被赋值,则前面元素的个数可以省略。
例如:int a[] 1,2,3,4,5 表示定义的数组有5个元素
如果元素值相同,只能给元素逐个赋值,不能给数组整体赋值。
例如:int a[5] 1,1,1,1,1 ; 正确 int a[5] 1 ; 表示:a[0] 1,其它值默认为0
一维数组的应用
例1:将数组中的数倒着输出
例2:逆置
方法:首尾互换,注意:1)互换的次数2)互换时要借用一个新的变量3)
例3:求10个数中的最大数
例4:删除数组中的数(方法一,在原数组中,移动下标。方法二,借用另外的数组)
删除数组中第3个元素。
方法:
确定要删除数值的下标。i 3
从要删除数值开始依次向前移动元素值。a[i] a[i+1]
将最后一个元素的值赋值为0
删除有序数组中的一个元素,保证顺序正确
方法:
查找定位,查找出要删除除元素所在的下标。if a[i] n break;
从要删除数值开始依次向前移动元素值。a[i] a[i+1]
将最后一个元素的值赋值为0
例5:在数组中插入一个数。
将数值插入在固定的位置上
方法:
确定要插入的元素位置(下标)。i 3
将一个新的下标移动到该数组中第一个为零的位置上。(最后一个元素的下一位)
从最后一位开始依次将前一个元素值移动到下标所指向的位置上。a[j] a[j-1]
插入要插入的数值。a[3] 30.
在一个有序的数组中插入一个数。
方法:
确定要插入的元素位置,用查找的方式定位。a[i]
将一个新的下标移动到该数组中第一个为零的位置上。(最后一个元素的下一位)
从最后一位开始依次将前一个元素值移动到下标所指向的位置上。a[j] a[j-1]
插入要插入的数值。a[i] 30.
例6:排序
冒泡排序法
练习:将一维数组a[10] 12,45,31,96,87,42,30,5 从大到小排序,并将50按顺序插入到数组中。
方法:
先将a[10]数组进行从大到小排序。
确定要插入的元素位置,用查找的方式定位。在数组中依次查找a[i],判断是否是我们要插入的位置。
将一个新的下标移动到该数组中第一个为零的位置上。(最后一个元素的下一位)
从最后一位开始依次将前一个元素值移动到下标所指向的位置上.a[j] a[j-1]
插入要插入的数值。a[i] 50.
作业:将一维数组a[10] 12,9,78,32,65,98,85,96,74,5 ,重新组合输出为: 65,74,78,85,96,98,5,9,12,32
先将数组从小到大排序后,将前四个元素移到数组的后四个元素位置上。(提示:可以借用另外的一个变量或数组)
文档评论(0)