C语言程序设计谭浩强编数组.pptx
《C语言程序设计谭浩强编数组.pptx》由会员分享,可在线阅读,更多相关《C语言程序设计谭浩强编数组.pptx(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、7.1.2 一维数组元素的引用 C语言规定,只能逐个引用逐个引用数组元素而不能一次引用整个数组。数组元素的表示形式为:数组名下标 其中下标可以是整型常量整型常量或整型表达式整型表达式。例如:a0=a5+a7-a2*3例7.1 数组元素的引用#main()int i,a10;for(i=0;i=0;i-)printf(“%d”,ai);第1页/共41页7.1.3 一维数组的初始化(1)在定义数组时对数组元素赋以初值。例如:int a10=0,1,2,3,4,5,6,7,8,9 其中:a0=0,a1=1,a2=2,a3=3,a4=4,a5=5,a6=6,a7=7,a8=8,a9=9(2)可以只给一
2、部分元素赋值。例如:int a10=0,1,2,3,4;其中:a0=0,a1=1,a2=2,a3=3,a4=4,a5=0,a6=0,a7=0,a8=0,a9=0(3)如果想使一个数组中全部元素值为0,可以写成:int a10=0,0,0,0,0,0,0,0,0,0不能写成:int a10=0*10第2页/共41页(4)在对全部数组元素赋初值时,可以不指定数组长度。例如:int a5=0,1,2,3,4可以写成:int a =0,1,2,3,4例如:int a10=0,1,2,3,4;只初始化了前5个元素,后5个元素为0。第3页/共41页7.1.4 一维数组程序举例*例7.2 用数组来处理求Fi
3、bonacci数列问题。main()int i;int f20=1,1;for(i=2;i20;i+)fi=fi-2+fi-1;for(i=0;i20;i+)if(i%5=0)printf(“n”);printf(“%12d”,fi);第4页/共41页例7.3 用冒泡法对10个数排序(由小到大)。冒泡法:对将进行排序的数,两两比较,如果不满足次序要求,则交换位置;985420第一次比较895420第二次比较859420第三次比较854920第四次比较第五次比较854290854209第一次冒泡排序的结果 n个数经过一次冒泡排序后,最大数(最小数)将被交换到确定位置,但前面n-1数仍然无序。第0
4、趟冒泡排序第5页/共41页从上述我们可以得出:如果n个数参加冒泡排序,则共要进行n-1趟排序。在第j趟比较中有n-j个数参加排序,要进行n-j-1次两两比较。本例中第1趟有5个数参加排序,进行了4次比较。854209第一次比较584209第二次比较548209第三次比较542809第四次比较542089第二次冒泡排序的结果第1趟冒泡排序第6页/共41页 程序的结构:main()1、定义相关的数组和相关变量 3、按冒泡算法对其升序排序 由于在排序中涉及到总共所 需的趟次和每一趟中具体比 较的次数,因此可用循环嵌 套控制语句来完成。4、输出经排序后的十个数 2、输入待排序的十个数第7页/共41页*
5、main()int a10;int i,j,t;printf(“input 10 numbers:n”);for(i=0;i10;i+)scanf(“%d”,&ai);printf(“n”);for(j=0;j9;j+)for(i=0;iai+1)t=ai;ai=ai+1;ai+1=t;printf(“the sorted numbers:n”);for(i=0;iai+1aifor i=0 to n-j-1for j=0 to n-2输入n个数给a0到an-1第8页/共41页 6.2 二维数组的定义和引用 一、定义 格式:类型说明符数组名常量表达式常量表达式 如:int a34;float
6、b56;说明:1.多维数组的下标仍从0计起。例如:a23其元素个数为 6个,即:a00,a01,a02 a10,a11,a12 2.C 语言中,二维(或高维)数组中的元素是按行 存放。如:a34 数组 a00 a01 a02 a03 a10 a11 a12 a13 a20 a21 a22 a23第9页/共41页 3.对二维或高维数组可看成其元素也是数组的数组。如:a34可看成由三个元素 a0,a1,a2组成。而每个元素又是一个包含4个元素的一维数组。即 a0 a00 a01 a02 a03 a1 a10 a11 a12 a13 a2 a20 a21 a22 a23 二、二维数组元素的引用 格式
7、:数组名下标下标 注意:下标值同数组大小的匹配。如:int a34;.a34=3;(是错误的)a34第10页/共41页 1.分行赋初值(即按行赋值)如:int a34=1,2,3,4,5,6,7,8,9,10,11,12;2.按数组排列的顺序对各元素赋值 如:int a34=1,2,3,4,5,6,7,8,9,10,11,12;3.部分赋值 (1)int a34=1 ,5,9;1 0 0 0 5 0 0 0 9 0 0 0 (2)int a34=1,0,6,0,0,11;1 0 0 0 0 6 0 0 0 0 11 0第11页/共41页 (3)int a34=1,5,6;1 0 0 0 5 6
8、 0 0 0 0 0 0 (4)int a34=1,9;1 0 0 0 0 0 0 0 9 0 0 0 4.int a34=1,2,3,12;int a 4=1,2,3,12;但不能写成:int a3 =1,2,3,12;5.int a34=0,0,3,0,10;int a 4=0,0,3,0,10;第12页/共41页运行结果示意 四、二维数组程序举列(p86)例 6.4 将一个二维数组行和列元素互换,存到 一个二 维数组中。如:1 2 3 1 4 a=b=2 5 4 5 6 3 6 算法:bji =aij 源程序main()int a23=1,2,3,4,5,6 ;int b32 ,i ,j
9、;for(i=0;i =1;i+)for(j=0;j =2;j+)printf(“%5d”,aij);bji =aij ;printf(“n”);printf(“narray b:n”);for(i=0;i =2;i+)for(j=0;j =1;j+)printf(“%5d”,bij);printf(“n”);行列互换结果 array a:1 2 3 4 5 6 array b:1 42 53 6 第13页/共41页例 6.5 求一个 3 4 的的矩阵中最大的那个元素的 值,以及其所在的行号和列号。main()int i,j,row=0,colum=0,max;int a34=1,2,3,4,
10、9,8,7,6,10,10,5,2;max=a00;for(i=0;i =2;i+)for(j=0;j max)max=aij;row=i;colum=j;printf(“max=%d,row=%d,colum=%d n”,max,row ,colum);结果:max=10,row=2,colum=1第14页/共41页6.3 字符数组 一、定义 格式:一维:char 数组名常量表达式 二维:char 数组名常量表达式常量表达式 如:char c10;char a56;二、初始化 例如:char c8=,H,e,l,l,o,w,!;c0 ,c1 H,.c7 !说明:1.所赋的字符个数不能超过数组
11、长度。2.如所赋的字符个数小于数组长度,则 其余元素自动赋为空字符(0)。如:char c9=,H,e,l,l,o,w,!;c0,c1H,.c7!,c80第15页/共41页 3.如字符个数与数组长度相等,则可省略数组长度。由系统自动确定数组长度。如:char c=,H,e,l,l,o,w,!;4.二维字符数组的初始化与上述一维字符数组的初 始化相同。如:char diamond55=,*,*,*,*,*,*,*,*;*第16页/共41页 三、字符数组的引用 格式:数组名下标 例 6.6 输出一个字符串。main()char c10=I,a,m,a,b,o,y;int i;for(i=0;i 1
12、0;i+)printf(“%c”,ci);printf(“n”);第17页/共41页 例 6.7 输出一个钻石 图形。main()char diamond55=,*,*,*,*,*,*,*,*;int i ,j;for(i=0;i 5;i+)for(j=0;j 5;j+)printf(“%c”,diamondij);printf(“n”);*第18页/共41页 四、字符串和字符串的结束标志 C语言中规定了一个“字符串结束标志”,用 0表示。例如:printf(“Hellow!n”);遇到 0 就停止输出。可以用字符串常量来初始化字符数组。如:char c =“I am happy”;char
13、c =“Iamhappy”;上述初始化等效于:char c =I,a,m,h,a,p,p,y,0;(11个字符)又如:char c10=“China”;C h i n a 0 0 0 0 0第19页/共41页 说明:1.逐个字符赋值时,并不要求最后字符为 0,但采用字符串常量赋值时,则会有 0。如:char c5=C,h,i,n,a;如:char c6=“China”;2.字符型数据和整型数据在一定范围内是互 相通用的。可用整型数组来处理字符数据。例如:int c =C,h,i,n,a;但不能用字符串常量来初始化整型数组。例如:int c =“China”;int c =“China”;第20
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 谭浩强编 数组
限制150内