C语言数组结构介绍.pptx
《C语言数组结构介绍.pptx》由会员分享,可在线阅读,更多相关《C语言数组结构介绍.pptx(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一维数组的引用一维数组的引用格式:数组名下标l下标可以是常数或者常数表达式,也可以是变量或者变量表达式,但必须是整数。l数组不可整体引用,不可整体赋值,想给一维数组score里面的50个数组元素都赋值为0,使用score=0是错误的,可以使用循环结构来赋值:for(i=0;i50;i+)scorei=0;使用数组不但简化了变量的命名,还简化了变量的使用。l数组元素(用下标去引用)相当于一个普通变量,可以出现在该类变量可以出现的所有场合。l数组名不是一个普通的变量名,而是第一个数组元素的地址。第1页/共41页一维数组的初始化一维数组的初始化l数组可以在定义的时候就进行初始化(赋初值)l例如:in
2、t score10=0,1,2,3,4,5,6,7,8,9;如果括号内的数小于10个,那么只是从score0开始赋值,剩下的没有赋值的数组元素的值初始化为0。如果只是定义而没有初始化(一个都没赋初值),则所有的数组元素的值都是不可预测的。l如果在定义数组时候,已经对所有的数组元素进行赋初值,数组的长度可以省略int score10=0,1,2,3,4,5,6,7,8,9;等价于int score=0,1,2,3,4,5,6,7,8,9;第2页/共41页l如果没有对所有的数组元素进行赋初值,例如int score=0,1,2,3,4,5,6,7,8;编译系统测出赋初值的个数为9,就认为数组的长度
3、是9而不是10。【例6.3】输入10个数,用冒泡法排序(从小到大)l冒泡排序是相邻的两个数进行比较,如果前一个比后一个大,就交换,每一轮都会把本轮要比较的所有的数中最大的那个数放到最后,小的数往前面移动,就像水里的气泡逐渐往上浮一样。第3页/共41页l第1轮,把第0跟第1个数比较,第1跟第2个数比较第n-2个数跟第n-1个数比较,如果前一个数比后一个大,就交换。那么第1轮交换结束后,就把第0个至第n-1个数中最大者放到第n-1的位置;l第2轮,把第0跟第1个数比较,第1跟第2个数比较第n-3个数跟第n-2个数比较,如果前一个数比后一个大,就交换。那么第2轮比较结束后,就可以把第0至第n-2个数
4、中最大者放到第n-2的位置;l依次类推,直到第0个跟第1个数比较,把最大者放到第1的位置,这样就可以把整个数组排好序。l冒泡法每轮都把该轮要比较的数的最大者放到最后第4页/共41页#include#define N 10main()int aN;int i,j,temp;for(i=0;iN;i+)scanf(%d,&ai);printf(befor sorting:n);for(i=0;iN;i+)printf(%-5d,ai);printf(n);第5页/共41页for(i=0;iN-1;i+)for(j=0;jaj+1)temp=aj;aj=aj+1;aj+1=temp;printf(a
5、fter sorting:n);for(i=0;iN;i+)printf(%-5d,ai);printf(n);第6页/共41页运行结果如下:1 3 5 7 9 2 4 6 8 10befor sorting:1 3 5 7 9 2 4 6 8 10after sorting:1 2 3 4 5 6 7 8 9 10Press any key to continue第7页/共41页二维数组的定义、引用及初始化二维数组的定义、引用及初始化二维数组的定义格式:类型说明符 数组名常量表达1 常量表达2;例如,int b34;定义了一个3行4列的二维数组,一共有12个数组元素,每个都是int类型,序号
6、从b00b23。逻辑顺序如下:b00b01b02b03b10b11b12b13b20b21b22b23第8页/共41页二维数组是按行存储二维数组是按行存储先存完第1行,再存第2行,第3行,直到最后一行。在内存中存储顺序如下:第0行第1行第2行第3行b00b01b02b03b10b11b12b13b20b21b22b23第9页/共41页二维数组的引用二维数组的引用格式:数组名下标1下标2l与一维数组相同,下标可以是常数或者常数表达式,也可以是变量或者变量表达式,但必须是整数。二维数组的初始化二维数组在定义的时候就可以进行初始化,例如int b34=0,1,2,3,4,5,6,7,8,9,10,1
7、1;等价于int b34=0,1,2,3,4,5,6,7,8,9,10,11;(分行赋初值,更直观,建议使用)第10页/共41页在这里已经给数组所有元素赋初值了,第一维的长度可以省略,但是不建议省略。第二维的长度不可省略。赋值效果如下:01234567891011第11页/共41页二维数组(或者多维数组)省略写第一维的情况int b4=0,1,2,3,4,5,6,7,8,9;没有问题,最后一行没有赋值的两个数组元素会初始化为0。012345678900第12页/共41页int b4=0,1,2,3,4,5,8,9;也没有问题,最后两行有两个没有赋值的数组元素也会初始化为0。0123450089
8、00第13页/共41页l但是int b4=0,1,2,3,4,5,6,7;还可以吗?l编译器会认为第一维的长度是2,而不是3lb20b23的值是不确定的,引用b20b23的值没有意义,l对b20b23进行写操作可能会造成系统严重错误(数组越界访问)。第14页/共41页【例6.5】有一个34的二维数组a,求出值最大的数组元素的值及所在的行号和列号。程序如下:#includevoid main()int i,j,row=0,colum=0,max;int a34=1,2,3,4,9,8,7,6,-10,10,-5,2;第15页/共41页max=a00;for(i=0;i3;i+)for(j=0;j
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 数组 结构 介绍
限制150内