清华大学出版社 TSINGHUA UNIVERSITY PRESS it=a\i\;ai\=a i+1]; a [i+1]=t; i printf( "the sorted numbers: \n"); for(i=1;i<11;i++) printf("%d",a [i]); 运行情况如下: input 10 numbers: 10481265-76100-45123 the sorted numbers: 76-4501481265100123
{t=a\[i\];a\[i\]=a\[i+1];a[i+1]=t;} printf("the sorted numbers :\n"); for(i=1;i<11;i++) printf("%d ",a[i]); } 运行情况如下: input 10 numbers: 1 0 4 8 12 65 -76 100 -45 123 the sorted numbers: -76 -45 0 1 4 8 12 65 100 123
清华大学出版社 TSINGHUA UNIVERSITY PRESS 72二维数组的定义和引用 721二维数组的定义 二维数组定义的一般形式为类型说明符数组名[常 量表达式][常量表达式] 例如: float a[3][4],b[5][10]; 定义a为3×4(3行4列的数组,b为5×105行10列) 的数组。注意不能写成 float a[3,4],b[5,10] c语言对二维数组采用这样的定义方式,使我们可 以把二维数组看作是一种特殊的一维数组:它的 元素又是一个一维数组。例如,可以把a看作是 个一维数组,它有3个元素:a[0]、a[1]
7.2.1 二维数组的定义 二维数组定义的一般形式为类型说明符 数组名[常 量表达式][常量表达式]。 例如:float a[3][4],b[5][10]; 定义a为3×4(3行4列)的数组,b为5×10(5行10列) 的数组。注意不能写成 float a[3,4],b[5,10]; c语言对二维数组采用这样的定义方式,使我们可 以把二维数组看作是一种特殊的一维数组:它的 元素又是一个一维数组。例如,可以把a看作是一 个一维数组,它有3个元素:a[0]、a[1]、 7.2 二维数组的定义和引用
清华大学出版社 TSINGHUA UNIVERSITY PRESS a[2],每个元素又是一个包含4个元素的一维数 组。见图74。可以把a[0]、a[1]、a[2]看 作是3个一维数组的名字。上面定义的二维数组可 以理解为定义了3个一维数组,即相当于 float a 0]「4],a「1]「41,a[21「4 a02a03 a00a01a02a03 aa11--10a11a12a13 a10a11a12a13 a2] a20a21a22a23 图74 图75
a[2],每个元素又是一个包含4个元素的一维数 组。见图7.4。可以把a[0]、a[1]、a[2]看 作是3个一维数组的名字。上面定义的二维数组可 以理解为定义了3个一维数组,即相当于 float a [0][4],a[1][4],a[2][4] 图7.4 图7.5
清华大学出版社 TSINGHUA UNIVERSITY PRESS 此处把a[0],a[1],a[2]看作一维数组名。c 语言的这种处理方法在数组初始化和用指针表示时 显得很方便,这在以后会体会到。 c语言中,二维数组中元素排列的顺序是:按行存放, 即在内存中先顺序存放第一行的元素,再存放第二 行的元素。图75表示对a[3][4]数组存放的顺 序 c允许使用多维数组。有了二维数组的基础,再掌握 多维数组是不困难的。例如,定义三维数组的方法 是 float a[2][3][4]
此处把a[0],a[1],a[2]看作一维数组名。c 语言的这种处理方法在数组初始化和用指针表示时 显得很方便,这在以后会体会到。 c语言中,二维数组中元素排列的顺序是:按行存放, 即在内存中先顺序存放第一行的元素,再存放第二 行的元素。图7.5表示对a[3][4]数组存放的顺 序。 c允许使用多维数组。有了二维数组的基础,再掌握 多维数组是不困难的。例如,定义三维数组的方法 是 float a[2][3][4];
清华大学出版社 TSINGHUA UNIVERSITY PRESS 多维数组元素在内存中的排列顺序:第一维的下 标变化最慢,最右边的下标变化最快。例如,上 述三维数组的元素排列顺序为 a[0][0][0]→a[0][0][1]→a[0][0] [2]→→a[0][0][3]→a[0][1][0] a[0][1][1]→a[0][1][2]→→a[0] 1][3]→a[0][2][0]→a[0][2] 1]→a[0][2][2]→a[0][2][3] →a[1][0][0]→a[1][0][1]→a[1] [0][2]→a[1][0][3]→a[1][1] [0]→→a[1][1][1]→a[][1][2] a[1][1][3]→a[1][2][0]→→a[1] 2][1]→a[1][2][2]→a[1][2] [3]
多维数组元素在内存中的排列顺序:第一维的下 标变化最慢,最右边的下标变化最快。例如,上 述三维数组的元素排列顺序为 a[0][0][0]→a[0][0][1]→a[0][0] [2]→a[0][0][3]→a[0][1][0] →a[0][1][1]→a[0][1][2]→a[0] [1][3]→a[0][2][0]→a[0][2] [1]→a[0][2][2]→a[0][2][3] →a[1][0][0]→a[1][0][1]→a[1] [0][2]→a[1][0][3]→a[1][1] [0]→a[1][1][1]→a[1][1][2] →a[1][1][3]→a[1][2][0]→a[1] [2][1]→a[1][2][2]→a[1][2] [3]