南京师范大学:《C程序设计》第六章 数组

C程序设计 主讲教师:汪闽 南京师范大学 地图学与地理信息系统04级 专业选修课
C程序设计 南京师范大学 地图学与地理信息系统04级 专业选修课 主讲教师: 汪闽

第六章数组 6.1数组概念 6.2一维数组 6.3二维数组及多维数组 6.4字符数组和字符串
第六章 数组 6.2 一维数组 6.3 二维数组及多维数组 6.4 字符数组和字符串 6.1 数组概念

61数组概念 ·构造数据类型之· ·数组:有序数据的集合,用数组名标识 ·元素:属同一数据类型,用数组名和下标确定
6.1 数组概念 • 构造数据类型之一 • 数组:有序数据的集合,用数组名标识 • 元素:属同一数据类型,用数组名和下标确定

62一维数组 数组运算符 单目运算符 优先级(1) 左结合 ★一维数组的定义 不能用() 令定义方式:数据类型数组名[常量表达式]; 例inta[6]; 合法标识符 表示元素个数 下标从0开始 all 2] 编译时分配连续内存 数组名表示内存首地址, 内存字节数=数组维数* 是地址常量 SIzes元素数据类型) a[5]
一维数组的定义 ❖定义方式: 数据类型 数组名[常量表达式]; 合法标识符 表示元素个数 下标从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(元素数据类型) 数组名表示内存首地址, 是地址常量 6.2 一维数组

621一维数组的引用 例inti=15 例 int data[5] datl[5}-10;∥C语言对数组不作越界检查,使用时要注意 ◆数组必须先定义。后使用 令只能逐个引用数组元素,不能一次引用整个数组 令数组元素表示形式:数组名[下标] 其中:下标可以是常量或整型表达式 例inta[l0] brint f(%da);(×) 必须for(=0j<10j++ printf(" %odt,, aLD
❖数组必须先定义,后使用 ❖只能逐个引用数组元素,不能一次引用整个数组 ❖数组元素表示形式: 数组名[下标] 其中:下标可以是常量或整型表达式 例 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语言对数组不作越界检查,使用时要 注意 6.2.1一维数组的引用

622一维数组的初始化 今初始化方式 inta[5}={1,2,34,5} 等价于:a[0]=1;a[l=2;a[2]=3;a[3]4;a[4]=5; 今说明: 数组不初始化,其元素值为随机数 ●对stat数组元素不赋初值。系统会自动赋以0值 只给部分数组元素赋初值 当全部数组元素赋初值时,可不指定数组长度 TAT inta={1,2,3,4,5,6} 编译系统根据初值个数确定数组维数厂O;
❖初始化方式 在定义数组时,为数组元素赋初值 (在编译阶段使之得到初值) 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}; 编译系统根据初值个数确定数组维数 6.2.2一维数组的初始化

例用冒泡法对10个数排序 排序过程: (1)比较第一个数与第二个数,若为逆序a0>a1,则交换;然 后比较第二个数与第三个数;依次类推,直至第n-1个数和第 n个数比较为止—第一趟冒泡排序,结果最大的数被安置在 最后一个元素位置上 (2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在 第n-1个元素位置 (3)重复上述过程,共经过n-趟冒泡排序后,排序结束
排序过程: (1)比较第一个数与第二个数,若为逆序a[0]>a[1],则交换;然 后比较第二个数与第三个数;依次类推,直至第n-1个数和第 n个数比较为止——第一趟冒泡排序,结果最大的数被安置在 最后一个元素位置上 (2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在 第n-1个元素位置 (3)重复上述过程,共经过n-1趟冒泡排序后,排序结束 例 用冒泡法对10个数排序

例38 38383813 1313 13 49494913 272727 27 6565 132730 3030 76 38 13273038 1376 30 4949 2730 65 65 例用冒泡法对10个数排序 3076 76 (图解) 9797 程序见P125 初第第第第第第第 始 五六七 关趟趟耥趟趟趟趟 键 字 n=8
例 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 7676 30 13 2765 3065 65 13 13 49 3049 2749 2738 308 38 13 27第七趟 例 用冒泡法对10个数排序 (图解) 程序见 P125

例用简单选择法对10个数排序 排序过程: (1)首先通过n-1次比较,从n个数中找出最小的,将它与第一个数 交换—第一趟选择排序,结果最小的数被安置在第一个元素位置上 (2)再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录 将它与第二个数交换—第二趟选择排序 (3)重复上述过程,共经过n-1趟排序后,排序结束
排序过程: (1)首先通过n-1次比较,从n个数中找出最小的,将它与第一个数 交换—第一趟选择排序,结果最小的数被安置在第一个元素位置上 (2)再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录, 将它与第二个数交换—第二趟选择排序 (3)重复上述过程,共经过n-1趟排序后,排序结束 例 用简单选择法对10个数排序

例用简单选择法对10个数排序 kk k 例i=1初始:13386597764927 k k 2一趟:131276597764938 趟:1327[6597764938] 三趟:132738[97764965] 四趟:13273849[769765 五趟:1327384965[9776] 六趟:132738496576[97]
例 初始: [ 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个数排序
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 南京师范大学:《C程序设计》第八章 预编译命令.ppt
- 南京师范大学:《C程序设计》第五章 循环结构程序设计.ppt
- 南京师范大学:《C程序设计》第二章 数据类型、运算符号与表达式.ppt
- 南京师范大学:《C程序设计》第九章 指针.ppt
- 南京师范大学:《C程序设计》第三章 顺序程序结构设计.ppt
- 南京师范大学:《C程序设计》第七章 函数3 new.ppt
- 南京师范大学:《C程序设计》第一章 C语言概论.ppt
- 华中科技大学:《计算机图形学基础》课程电子教案(PPT教学课件)第9章 消隐.ppt
- 华中科技大学:《计算机图形学基础》课程电子教案(PPT教学课件)第8章 曲线和曲面.ppt
- 华中科技大学:《计算机图形学基础》课程电子教案(PPT教学课件)第7章 三维变换及三维观察.ppt
- 华中科技大学:《计算机图形学基础》课程电子教案(PPT教学课件)第6章 二维变换及二维观察.ppt
- 华中科技大学:《计算机图形学基础》课程电子教案(PPT教学课件)第5章 基本图形生成算法.ppt
- 华中科技大学:《计算机图形学基础》课程电子教案(PPT教学课件)第4章 造型技术.ppt
- 华中科技大学:《计算机图形学基础》课程电子教案(PPT教学课件)第3章 交互式技术.ppt
- 华中科技大学:《计算机图形学基础》课程电子教案(PPT教学课件)第2章 图形设备.ppt
- 华中科技大学:《计算机图形学基础》课程电子教案(PPT教学课件)第1章 引言(主讲:陆枫).ppt
- 华中科技大学:《计算机图形学基础》课程电子教案(PPT教学课件)第10章 真实感图形绘制.ppt
- 上海理工大学:《电子商务基础与应用》课程PPT教学课件资源(第四版)第一章 认识电子商务.ppt
- 荆州职院:《计算机网络基础》首页.ppt
- 荆州职院:《计算机网络基础》第8章 网络安全.ppt
- 南京师范大学:《C程序设计》第十一章 文件.ppt
- 南京师范大学:《C程序设计》第十章 结构体和共用体.ppt
- 南京师范大学:《C程序设计》第四章 选择结构程序设计.ppt
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)每章习题.doc
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)每章习题答案与提示.doc
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)第十章 图纸布局与打印输出.ppt
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)第十一章 共享AutoCAD数据和协同设计.ppt
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)第十二章 创建三维模型.ppt
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)第十三章 图纸集.ppt
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)第一章 认识 AutoCAD.ppt
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)第二章 设置绘图环境.ppt
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)第三章 创建和编辑二维图形对象(一).ppt
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)第四章 创建和编辑二维图形对象(二).ppt
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)第五章 对象特性与图层.ppt
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)第六章 利用绘图辅助工具精确绘图.ppt
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)第七章 文字与表格.ppt
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)第八章 尺寸标注.ppt
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)第九章 块的使用.ppt
- 《SQL Server应用开发技术》第1章 数据库原理概述.ppt
- 《SQL Server应用开发技术》第2章 SQL Server 2000安装和配置.ppt