c语言(第七章数组)课件.ppt
《c语言(第七章数组)课件.ppt》由会员分享,可在线阅读,更多相关《c语言(第七章数组)课件.ppt(56页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、7.1 一维数组一维数组数数组组:数数组组是是一一组组类类型型相相同同有有序序数数据据的的集集合合。用数组名和下标来唯一确定数组中的元素。用数组名和下标来唯一确定数组中的元素。一、一维数组的定义一、一维数组的定义形式形式:类型说明符类型说明符 数组名数组名 常量表达式常量表达式例例 int a10注意注意:(1)类型说明符规定了)类型说明符规定了数组元素的类型数组元素的类型(2)数组名应是合法的标识符,且不能与其它数组名应是合法的标识符,且不能与其它变量名相同。变量名相同。(3 3)方括号中常量表达式表示数组的长度(数)方括号中常量表达式表示数组的长度(数组元素的个数)。组元素的个数)。C语言
2、中,语言中,数组下标从数组下标从0开开始始.例例 int a10 10个元素分别用:个元素分别用:a0、a1、a2、a3、a4、.、a8、a9。(4)C语言语言不允许不允许对数组的对数组的大小大小做做动态定义动态定义.例如:例如:int n=5;int an;错误错误(5)允允许许在在同同一一个个类类型型说说明明中中,说说明明多多个个数数组组和多个变量。和多个变量。例如:例如:int a,b,c,d,k110,k220;二、数组元素的引用方式二、数组元素的引用方式 数组名数组名 下标下标 例例:a0=a5+a7-a2*3例例7.1 使数组元素使数组元素a0a9的值为的值为09,然后逆,然后逆序
3、输出。序输出。main()int i,a10;for(i=0;i=0;i-)printf(%d,ai);下标运算符下标运算符单目运算符单目运算符优先级为优先级为1左结合左结合不能用不能用()只能逐个引用数组元素,不能一次引用整个数组只能逐个引用数组元素,不能一次引用整个数组3、全部元素均初始化为、全部元素均初始化为0,int a10=0,0,0,0,0,0,0,0,0,0;或或 int a10=0;4、在在对对全全部部数数组组元元素素赋赋初初值值时时,可可以以不不指指定定数数组长度。组长度。例如例如:int a5=1,2,3,4,5;可以写成:可以写成:int a=1,2,3,4,5;四、一维
4、数组程序举例四、一维数组程序举例例例7.2 用数组来处理用数组来处理Fibonicci数列的前数列的前40项项。f0f1f2f3f4f5f39.11f3901452339235/*ch7_2.c*/#include stdio.hmain()int i;long f40=1,1;for(i=2;i40;i+)fi=fi-1+fi-2;for(i=0;ia1,则交换;然则交换;然 后比较第二个数与后比较第二个数与第三个数;依次类推,直至第第三个数;依次类推,直至第n-1个数和第个数和第 n个数比较为止个数比较为止第一趟冒泡排序第一趟冒泡排序,结果,结果最大最大的数被安置在最后一个元素位置上的数被
5、安置在最后一个元素位置上(2)对前)对前n-1个数进行第二趟冒泡排序,个数进行第二趟冒泡排序,结果使结果使 次大次大的数被安置在的数被安置在 第第n-1个元素位个元素位置置(3)重复上述过程,共经过)重复上述过程,共经过n-1趟冒泡排趟冒泡排序后,排序结束序后,排序结束例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 初始关键字 38497697139727973
6、09713767676273013652765306513134949304927382738303813 27 第七趟#include stdio.hmain()int a11,i,j,t,flag;printf(“input 10 numbers:n”);for(i=1;i11;i+)scanf(%d,&ai);for(j=1;j=9;j+)flag=0;for(i=1;iai+1)t=ai;ai=ai+1;ai+1=t;flag=1;if(flag=0)break;for(i=1;i11;i+)printf(%5d,ai);例初始:49 38 65 97 76 13 27 kji=113
7、49一趟:13 38 65 97 76 49 27 i=22738二趟: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 kkkkjjjjjjjjjj#include stdio.hmain()int i,j,min,t,a10;for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i9;i+)min=i;for(j=i+1;jaj)min=j;if(min!=i)t=ai;ai=amin;a
8、min=t;for(i=0;imaxaijmax,把,把aijaij作为新的临时最大值,并记录下其下作为新的临时最大值,并记录下其下标标i i和和j j。当全部元素比较完后,。当全部元素比较完后,maxmax是整个矩是整个矩阵全部元素的最大值。阵全部元素的最大值。main()int i,j,row=0,colum=0,max;int a34=1,2,3,4,9,8,7,6,-10,10,-5,2;max=a00;/*首先把第一个元素首先把第一个元素a00作为临时最大值作为临时最大值max*/for(i=0;i=2;i+)/*用两重循环遍历全部元素用两重循环遍历全部元素*/for(j=0;j m
9、ax)max=aij;row=i;colum=j;printf(max=%d,row=%d,colum=%dn,max,row,colum);运行结果运行结果:max=10,row=2,colum=1 注意:本例中得到的行列值从注意:本例中得到的行列值从0始。始。例例7.8求矩阵求矩阵A55的转值矩阵,结果仍存放在原的转值矩阵,结果仍存放在原数组中。数组中。#include stdio.hmain()int a55,i,j,t;for(i=0;i5;i+)for(j=0;j5;j+)scanf(%d,&aij);for(i=0;i5;i+)for(j=0;ji;j+)t=aij;aij=aji
10、;aji=t;for(i=0;i5;i+)for(j=0;j5;j+)printf(%5d,aij);printf(n);getch();二、字符数组的初始化二、字符数组的初始化1、逐个元素初始化、逐个元素初始化 char c10=I,a,m,h,a,p,p,y;2、数据少于数组长度、数据少于数组长度,多余元素自动为多余元素自动为“空空”。char c13=I,a,m,h,a,p,p,y;3、指定初值时,未指定数组长度,则长度等于初值个数。、指定初值时,未指定数组长度,则长度等于初值个数。char c =I,a,m,h,a,p,p,y;10个初值,因此,数组个初值,因此,数组c的长度是的长度是
11、10。I a m h a p p y 0 0 0 0c0c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11c12c13I a m h a p p y c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 三、字符数组的引用三、字符数组的引用引用一个元素,得到一个字符引用一个元素,得到一个字符。例例7.9 输出一个字符串。输出一个字符串。main()char c10=I,a,m,a,b,o,y;int i;for(i=0;i10;i+)printf(“%c”,ci);/*引用数组元素引用数组元素ci,得到一个字符,得到一个字符*/printf(n);输出结果:输出结果:I
12、 am a boyI a m h a p p y 0 0 0 0c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11c12c132、字符串在存储时,系统自动在其后加上、字符串在存储时,系统自动在其后加上结束标志结束标志0(占一字节,其值为二进(占一字节,其值为二进制制0)char c14 =I am happy”;已明确指定字符数组的长度为已明确指定字符数组的长度为14,但只,但只给给10个初值,不足部分全部补个初值,不足部分全部补0。I a m h a p p yc0 c1 c2 c3 c4 c5 c6 c7 c8 c9 3、如果如果:char c10 =I am ha
13、ppy”;没有存储结束标记没有存储结束标记0,该字符数组,该字符数组不能作为字符串处理。不能作为字符串处理。.*00.*.*0*.*.*.*0.*00diamond0diamond1diamond2diamond3diamond44、二维字符数组初始化、二维字符数组初始化例例 char diamond5=.,.,*,.,*,.,*,*,.,.,.,*,.,*,.,*,.,.,*;fruit0fruit1fruit2fruit3fruit4Apple 0 0Orang e0Grape00Pear000Peach00例例 char fruit 7=Apple,Orange,Grape,Pear,P
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 第七 数组 课件
限制150内