清华大学出版社 TSINGHUA UNIVERSITY PRESS {t=aliN];al[iN]=al[i+1];a [i+1]=t;} printf("the sorted numbers :n"); for(i=1;i<11;i++) printf("%d "a [i]); 3 运行情况如下: 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 7.2二维数组的定义和引用 7.2.1二维数组的定义 二维数组定义的一般形式为类型说明符数组名[常 量表达式][常量表达式]。 例如:floata[3][4],b[5][10]; 定义a为3×43行4列的数组,b为5×10(5行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个元素的一维数 组。见图7.4。可以把a[0]、a[1]、a[2]看 作是3个一维数组的名字。上面定义的二维数组可 以理解为定义了3个一维数组,即相当于float a [0][4],a[1][41,a[2 1[4] a00 a02a03 a[0]-a00a01a02a03 a1] -a10a11a12a13 d10 a11a12a13 a2] -a20a21a22a23 a20 a21a22423 图7.4 图7.5
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语言中,二维数组中元素排列的顺序是:按行存放, 即在内存中先顺序存放第一行的元素,再存放第二 行的元素。图7.5表示对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 [o][0][0] →a[0][0] [1] →8 [0] [0] [2]→a [0] [0] [3]→a [0] 1] [0] →a[0] →a[0] [1] →a[0] [1] [3] →8 [0 [2 [0] →a [0] [2] [1] →a [2] [2] →a [0 [2] [3] →a[1] [0] →a[1] 0] →a[1] 8删 [2] [0] [3 →a →a [1] 罗 →a[1] →a[1][2] →a[1] [2] 1]8 [1] [2][2]→a [ [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]