
你现在所处的位置在:首页→C语言教堂→幻灯片版)第五章数组 第五章 数组 数组概念 一维数组 二维数组及多维数组 字符数组和字符串 BACK
你现在所处的位置在:首页→C语言教学→幻灯片版→第五章 数组 1 第五章 数组 一维数组 二维数组及多维数组 字符数组和字符串 数组概念

你现在所处的位置在:首页→C语言教学→幻虹片版→第五章数组 数组概念 ·构造数据类型之一 ·数组:有序数据的集合,用数组名标识 ·元素:属同一数据类型,用数组名和下标确定
你现在所处的位置在:首页→C语言教学→幻灯片版→第五章 数组 2 数组概念 • 构造数据类型之一 • 数组:有序数据的集合,用数组名标识 • 元素:属同一数据类型,用数组名和下标确定

你现在所处的位置在:首页→C语言教堂→幻虹片版>第五章数组 5.1 一维数组 [门数组运算符 单目运算符 优先级(1) 左结合 ★一维数组的定义 不能用() 公定义方式: 数据类型 数组名[常量表达式]; 例 int a[6]; 合法标识符 表示元素个数 a a0] 下标从0开始 a[l] a2] 编译时分配连续内存 a3] 数组名表示内存首地址, 内存字节数=数组维数* 是地址常量 a4] sizeof元素数据类型) a5] 00 ◆8+
你现在所处的位置在:首页→C语言教学→幻灯片版→第五章 数组 3 一维数组的定义 ❖定义方式: 数据类型 数组名[常量表达式]; 合法标识符 表示元素个数 下标从0开始 [ ] :数组运算符 单目运算符 优先级(1) 左结合 不能用( ) 例 int a[6]; 0 a[0] 1 4 5 a[1] a[2] a[3] a[4] a[5] 2 3 a 编译时分配连续内存 内存字节数=数组维数* sizeof(元素数据类型) 数组名表示内存首地址, 是地址常量 5.1 一维数组

你现在所处的位置在:首页→C语言教堂→幻灯片版)第五章数组 例int data[5]; data[5]=10; C语言对数组不作越界检查,使用时要注意 一维数组的引用 公数组必须先定义,后使用 必只能逐个引用数组元素,不能一次引用整个数组 公数组元素表示形式:数组名下标] 其中:下标可以是常量或整型表达式 例 int a[10]; printf(%d”,a); (x) 必须forG=0j<10j+) printf%d小t”,a[j])i BAC◆
你现在所处的位置在:首页→C语言教学→幻灯片版→第五章 数组 4 ❖数组必须先定义,后使用 ❖只能逐个引用数组元素,不能一次引用整个数组 ❖数组元素表示形式: 数组名[下标] 其中:下标可以是常量或整型表达式 例 int i=15; int data[i]; (不能用变量定义数组维数) 例 int a[10]; printf(“%d”,a); () 必须 for(j=0;j<10;j++) printf(“%d\t”,a[j]); () 例 int data[5]; data[5]=10; //C语言对数组不作越界检查,使用时要 注意 一维数组的引用

你现在所处的位置在:首页→C语言教学→幻虹片版→第五章数组 维数组的初始化 公初始化方式 inta[5]={1,2,3,4,5}; 等价于:a[0l=1;a1]=2;a2]=3;a31=4;a4]=5; 》说明: ●数组不初始化,其元素值为随机数 ●对static数组元素不赋初值,系统会自动赋以0值 ●只给部分数组元素赋初值 ●当全部数组元素赋初值时,可不指定数组长度 int a]={1,2,3,4,5,6}: 编译系统根据初值个数确定数组维数
你现在所处的位置在:首页→C语言教学→幻灯片版→第五章 数组 5 ❖初始化方式 在定义数组时,为数组元素赋初值 (在编译阶段使之得到初值) int a[5]={1,2,3,4,5}; 等价于:a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5; ❖说明: ⚫数组不初始化,其元素值为随机数 ⚫对static数组元素不赋初值,系统会自动赋以0值 ⚫当全部数组元素赋初值时,可不指定数组长度 如 int a[5]={6,2,3}; 等价于: a[0]=6; a[1]=2;a[2]=3; a[3]=0; a[4]=0; 如 int a[3]={6,2,3,5,1}; () static int a[5]; 等价于:a[0]=0; a[1]=0; a[2]=0; a[3]=0; a[4]=0; ⚫只给部分数组元素赋初值 int a[]={1,2,3,4,5,6}; 编译系统根据初值个数确定数组维数 一维数组的初始化

你现在所处的位置在:首页→C语言教堂→幻虹片版>第五章数组 例用冒泡法对10个数排序 排序过程: (1)比较第一个数与第二个数,若为逆序a0>a1],则交换;然 后比较第二个数与第三个数;依次类推,直至第n-1个数和第 个数比较为止一第一趟冒泡排序,结果最大的数被安置在 最后一个元素位置上 (2)对前-1个数进行第二趟冒泡排序,结果使次大的数被安置在 第n-1个元素位置 (3)重复上述过程,共经过-1趟冒泡排序后,排序结束 a→之 6
你现在所处的位置在:首页→C语言教学→幻灯片版→第五章 数组 6 排序过程: (1)比较第一个数与第二个数,若为逆序a[0]>a[1],则交换;然 后比较第二个数与第三个数;依次类推,直至第n-1个数和第 n个数比较为止——第一趟冒泡排序,结果最大的数被安置在 最后一个元素位置上 (2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在 第n-1个元素位置 (3)重复上述过程,共经过n-1趟冒泡排序后,排序结束 例 用冒泡法对10个数排序

38 38 38 38 13 13 13 13 例 49 49 49 13 27 27 27 27 65 65 13 27 30 30 30 76 76 27 30 38 13 27 30 49 49 27 30 65 65 例用冒泡法对10个数排序(图解) 30 76 76 97 97 第 第 第 第 始关键字 第六趟 第七趟 趟 趟 第四趟 n=8 BAeK◆
你现在所处的位置在:首页→C语言教学→幻灯片版→第五章 数组 7 例 38 49 65 76 13 27 30 97 第 一 趟 38 49 65 13 27 30 76 第 二 趟 38 49 13 27 30 65 第 三 趟 38 13 27 30 49 第 四 趟 13 27 30 38 第 五 趟 13 27 30 第 六 趟 49 38 65 97 76 13 27 30 初 始 关 键 字 n=8 38 49 76 9713 97 97 27 30 97 13 76 76 76 27 30 13 2765 3065 65 13 13 49 3049 2749 2738 308 38 13 27 第 七 趟 例 用冒泡法对10个数排序(图解)

你现在所处的位置在:首页→C语言教学→幻虹片版→第五章数组 例用简单选择法对10个数排序 排序过程: (1)首先通过n-l次比较,从n个数中找出最小的,将它与第一个数 交换一第一趟选择排序,结果最小的数被安置在第一个元素位置上 (2)再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录, 将它与第二个数交换一第二趟选择排序 (3)重复上述过程,共经过n-l趟排序后,排序结束
你现在所处的位置在:首页→C语言教学→幻灯片版→第五章 数组 8 排序过程: (1)首先通过n-1次比较,从n个数中找出最小的,将它与第一个数 交换—第一趟选择排序,结果最小的数被安置在第一个元素位置上 (2)再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录, 将它与第二个数交换—第二趟选择排序 (3)重复上述过程,共经过n-1趟排序后,排序结束 例 用简单选择法对10个数排序

你现在所处的位置在·首页)C语言教学→幻伙灯片版)第五章数组 例1初始: 13 38 97 76 271 2一趟: 13 27 65 97 76 二趟: 13 27 [65 97 76 49 381 三趟: 13 27 38 [97 7649 65] 四趟: 13 27 38 49 [76 97 65] 五趟: 13 27 38 49 65 761 六趟: 13 27 38 49 6576[97]
你现在所处的位置在:首页→C语言教学→幻灯片版→第五章 数组 9 例 初始: [ 49 38 65 97 76 13 27 ] k j i=1 13 49 i=2 一趟: 13 [38 65 97 76 49 27 ] 27 38 二趟: 13 27 [65 97 76 49 38 ] 三趟: 13 27 38 [97 76 49 65 ] 四趟: 13 27 38 49 [76 97 65 ] 五趟: 13 27 38 49 65 [97 76 ] 六趟: 13 27 38 49 65 76 [97 ] k k k k j j j j j j j j j j 例 用简单选择法对10个数排序

你现在所处的位置在:首页→C语言教学→幻灯片版日 cO][O][0] 5.2二维数组及多维数组 crolrolf1] ★二维数组的定义 c0][0I2] 元素个数=行数 cro1013] 定义方式 co10 数据类型数组名「常量表达式常量表 eo11 c0]1I2 数组 例inta[3][4]; c0][13 c01201 ●原 float b[2][5]; crol[2111 intc[2][3][4] c0]2]12 ●多 c0]213 inta[3,4]; c[1l010] c[10111] c[1][O]2 inta[3][2] a[0][0] c[1][o]3 af0][1] c1][1o c[1][11T a[1][0] e[1][1]2] a0][o] a0]1] a][] c1][1]3 af1l0] af1l[1] a[2][0] c[1][2][0] a21r11 c[2 a21r01 a[2]1] c[1][2][2] c[1][2][3] BACR◆ 10
你现在所处的位置在:首页→C语言教学→幻灯片版→第五章 数组 10 二维数组的定义 ❖定义方式: 数据类型 数组名[常量表达式][常量表达式]; ❖数组元素的存放顺序 ⚫原因:内存是一维的 ⚫二维数组:按行序优先 ⚫多维数组:最右下标变化最快 例 int a[3][4]; float b[2][5]; int c[2][3][4]; int a[3,4]; () 行数元素个数=行数列数*列数 int a[3][2] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1] 0 1 4 5 2 3 a[0][0] a[0][0] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1] int c[2][3][4] 0 1 2 3 4 5 6 7………... 20 21 22 23 c[0][0][0] c[0][0][1] c[0][0][2] c[0][0][3] c[0][1][0] c[0][1][1] c[0][1][2] c[0][1][3] c[0][2][0] c[0][2][1] c[0][2][2] c[0][2][3] c[1][0][0] c[1][0][1] c[1][0][2] c[1][0][3] c[1][1][0] c[1][1][1] c[1][1][2] c[1][1][3] c[1][2][0] c[1][2][1] c[1][2][2] c[1][2][3] 5.2 二维数组及多维数组