C语言经典教程7讲(3-20).ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C语言经典教程7讲(3-20).ppt》由会员分享,可在线阅读,更多相关《C语言经典教程7讲(3-20).ppt(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第七章第七章 数组数组一维数组一维数组二维数组、多维数组二维数组、多维数组字符数组和字符串字符数组和字符串数组概念数组概念1/2/20231数据类型数据类型数据类型数据类型基本类型基本类型基本类型基本类型 构造类型构造类型构造类型构造类型指针类型指针类型指针类型指针类型空类型空类型空类型空类型整型整型整型整型实型实型实型实型枚举型枚举型枚举型枚举型字符型字符型字符型字符型数组类型数组类型数组类型数组类型结构体类型结构体类型结构体类型结构体类型共用体类型共用体类型共用体类型共用体类型双精度双精度双精度双精度单精度单精度单精度单精度1/2/20232数组概念数组:将同类型的一批数据集合在一起用一个
2、变量名存放,区别各元素的办法是用下标。数组名a int a5=0,1,2,3,4;元素 =a0=0;a1=1;.a4=4;下标从下标从0开始,到开始,到n-11/2/20233一维数组的定义v定义方式:数据类型 数组名常量表达式;例 int a6;int b2*3 数组的存储a00145a1a2a3a4a523a编译时分配连续内存编译时分配连续内存内存字节数内存字节数=数据类型数据类型数组名表示首地址数组名表示首地址7.1 一维数组一维数组例例inti=15;intj,aj;intdatai;scanf(“%d”,&j);(不支持动态数组不支持动态数组)1/2/20234v初始化方式 int
3、a5=1,2,3,4,5;在定义时,为数组元素赋初值在定义时,为数组元素赋初值v说明:l数组不初始化,其元素值为随机数l当全部数组元素赋初值时,可不指定数组长度 如 int a5=6,2,3等价于 a0=6;a1=2;a2=3;a3=0;a4=0;l可以只给部分数组元素赋初值 int a=1,2,3,4,5,6;编译系统根据初值个数确定数组维数一维数组的初始化一维数组的初始化但 int a3=1,2,3,4,5,6;错误1/2/20235v数组必须先定义,后使用v只能逐个引用数组元素,不能一次引用整个数组例例inta5=0,1,2,3,4;printf(“%d”,a);()必须必须for(j=
4、0;j5;j+)printf(“%dt”,aj);()例例intdata5;data5=10;/下标不能越界下标不能越界一维数组的引用一维数组的引用1/2/20236例例1:Fibonacci 数列数列main()int i,f20;f20=1,1;for(i=3;i20;i+)fi=fi-1+fi-2;for(i=1;i=3)1/2/20237例例2:用冒泡法对用冒泡法对8个数排序个数排序(从小到大从小到大)49 38 65 97 76 13 27 30 1/2/202383849657613273097 第第一一趟趟38496513273076 第第二二趟趟384913273065 第第三
5、三趟趟3813273049 第第四四趟趟13273038 第第五五趟趟132730 第第六六趟趟4938659776132730 初始关键字 n=838497697 139797273097137676762730 1327 第第七七趟趟1/2/20239 int a8 输入输入8个数给个数给a0到到a7 For i=1 to 7 for j=0 to 7-i ajaj+1 y n 交换交换 输出输出a0.a7第第i i趟,趟,前前7-i 7-i 个数比较个数比较比较比较7 7趟趟1/2/202310main()int a8;int i,j,t;for(i=0;i=7;i+)scanf(%d,
6、&ai);printf(n);for(i=1;i=7;i+)/*7趟趟*/for(j=0;jaj+1)t=aj;aj=aj+1;aj+1=t;printf(theprintf(the sorted numbers:n);sorted numbers:n);for(i=0;i=7;i+)for(i=0;i=7;i+)printf(%dtprintf(%dt,aiai););1/2/202311u二维数组的定义数据类型数组名常量表达式常量表达式;例例 int a32;u怎样理解 int a32:由三个一维数组组成u二维数组的存储 按行序优先行数列数7.2二维数组二维数组a00 a01a10 a11
7、a20 a21a0a1a2a01a10a11a20a21014523a00a0a1a21/2/202312形式:数组名下标下标二维数组元素的初始化l分行初始化:l按元素排列顺序初始化 例 int a23=1,2,4;a00 a01 a02 a10 a11 a12120400部分初始化 例 int a3=1,4,5;a00 a01 a02 a10 a11 a12100450第一维长度省略初始化 例 int a23=1,2,3,4,5,6;a00 a01 a02 a10 a11 a12123456全部初始化二维数组元素的初始化二维数组元素的初始化q二维数组的引用二维数组的引用n单个元素的引用(两个
8、循环的嵌套)单个元素的引用(两个循环的嵌套)n如如 a23for(i=0;i2;i+)/*外循环为行外循环为行*/for(j=0;j3;j+)/*内循环是列内循环是列*/printf(“%4d”,aij);例 int a23=1,2,3,4,5,6;a00 a01 a02 a10 a11 a12123456全部初始化 例 int a23=1,2,4;a00 a01 a02 a10 a11 a12124000部分初始化 例 int a3=1,2,3,4,5;a00 a01 a02 a10 a11 a12123450第一维长度省略初始化1/2/202313例例1将二维数组行列元素互换,存到另一个数
9、组中将二维数组行列元素互换,存到另一个数组中a=123456b=142536二维数组程序举例二维数组程序举例思路:思路:aij=bji#include main()int a23=1,2,3,4,5,6;int b32,i,j;for(i=0;i=1;i+)for(j=0;j=2;j+)bji=aij;printf(array b:n);for(i=0;i=2;i+)for(j=0;jmax真真假假max=aijrow=icolum=j输出:输出:max和和row,colum例例2求求(3*4)二维数组中最大元素值及其行列号二维数组中最大元素值及其行列号1/2/202315#include m
10、ain()int a34=1,2,3,4,9,8,7,6,-10,10,-5,2;int i,j,row=0,colum=0,max;max=a00;for(i=0;i=2;i+)for(j=0;jmax)max=aij;row=i;colum=j;printf(max=%d,row=%d,colum=%dn,max,row,colum);1/2/202316字符数组v定义 v字符数组的初始化l逐个字符赋值l用字符串常量例 char c10,ch34;7.3字符数组和字符串字符数组和字符串 例 charch5=“Boy”;charch=“Boy”;Boy00用字符串常量Boy0 例 char
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 经典 教程 20
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内