数组的基本概念一维数组二维数组第课件.ppt

上传人(卖家):三亚风情 文档编号:3325624 上传时间:2022-08-20 格式:PPT 页数:48 大小:258KB
下载 相关 举报
数组的基本概念一维数组二维数组第课件.ppt_第1页
第1页 / 共48页
数组的基本概念一维数组二维数组第课件.ppt_第2页
第2页 / 共48页
数组的基本概念一维数组二维数组第课件.ppt_第3页
第3页 / 共48页
数组的基本概念一维数组二维数组第课件.ppt_第4页
第4页 / 共48页
数组的基本概念一维数组二维数组第课件.ppt_第5页
第5页 / 共48页
点击查看更多>>
资源描述

1、 第一节第一节 数组的基本概念数组的基本概念 第二节第二节 一维数组一维数组 第三节第三节 二维数组二维数组 第四节第四节 字符数组字符数组 第五节第五节 应用实例应用实例C C中定义了在基本数据类型基础中定义了在基本数据类型基础上的构造数据类型上的构造数据类型(数组,结(数组,结构体,共用体等)构体,共用体等)变量先定义,再使用,如果变量个数变量先定义,再使用,如果变量个数少少,且彼此独立,且彼此独立时,可以时,可以 int a,b,c;a=5;b=10;c=23;printf(“%d,%d,%d”,a,b,c);当变量个数比较多,并且有内在的关系时,例如当变量个数比较多,并且有内在的关系时

2、,例如 :全班有:全班有3030个人,每人一个成绩个人,每人一个成绩 定义定义intint a1,a2,a1,a2,a30?a30?一组有序数据的集合一组有序数据的集合,各个元素属于同一个各个元素属于同一个类型类型,用统一的名称标用统一的名称标识这一组数识这一组数,用下标唯用下标唯一地确定这组数中的一地确定这组数中的每一个值。每一个值。6 1 数组的基本概念数组的基本概念数组的三要素数组的三要素数组是有限个相同的数据类数组是有限个相同的数据类型的数据分量的有序集合型的数据分量的有序集合相同的数据类型(相同的数据类型(定义数组时规定定义数组时规定)有限的成员个数有限的成员个数(定义数组时规定定义

3、数组时规定)彼此有序的排列彼此有序的排列(引用数组元素时的引用数组元素时的下标下标)int a5;a0=1;a1=2;.62 一维数组的定义和使用一维数组的定义和使用 一一、一维数组的定义、一维数组的定义格式:格式:类型类型 标识符标识符 长度长度 所有元素为所有元素为同一类型同一类型变量名,变量名,即数组名即数组名数组中所含数组中所含元素的个数元素的个数int a10;由由10个个整数组成的数组,整数组成的数组,共同拥有数组名共同拥有数组名数组长度必须是整型量数组长度必须是整型量int a2*3说明:说明:用方括号用方括号可以用常量表达式可以用常量表达式不能不定义长度,不能不定义长度,也不能

4、做动态定义也不能做动态定义int an,n=10;62 一维数组的定义和使用一维数组的定义和使用 二二、一维数组元素的引用、一维数组元素的引用原则原则数组必须先定义,再使用数组必须先定义,再使用 数组中的元素必须逐一引用数组中的元素必须逐一引用方法:方法:通过数组名及其元素的下标逐一引用通过数组名及其元素的下标逐一引用定义时定义时 类型类型 数组名数组名N int a10引用时引用时 数组名数组名下标下标下标范围从下标范围从 0 到到 N-1 a0,a1,a9为数组为数组a中的所有元素中的所有元素6 2 一维数组的定义和使用一维数组的定义和使用 下标表示了元素在数组中的位置下标表示了元素在数组

5、中的位置下标可以用表达式下标可以用表达式 a2*3相当于相当于a6说明说明(数组中第?个元素)数组中第?个元素)三、三、一维数组的初始化一维数组的初始化 变量在使用之前使其有值变量在使用之前使其有值如果没如果没有初值?有初值?数组初始化的方法数组初始化的方法int a4可以对可以对静态静态或或外部外部存贮类存贮类型的数组进行初始化。型的数组进行初始化。6 2 一维数组的定义和使用一维数组的定义和使用 数据类型数据类型 数组名数组名 常量表达式常量表达式 初始化数据;初始化数据;在数组说明的同时进行初始化的一般形式为:在数组说明的同时进行初始化的一般形式为:1.定义数组时,对全部元素赋值定义数组

6、时,对全部元素赋值 int a5=1,2,3,4,5;用用 包括所有初值,包括所有初值,用逗号分隔各数值用逗号分隔各数值2 对部分元素赋值对部分元素赋值 按顺序给前按顺序给前2个元素赋值个元素赋值float x5=1.9,2.0;float x5=1.9,2.0;x0=1.9x0=1.9;x1=2.0 x1=2.0;其余元素为其余元素为 若要对数组的全部元素初始化,则可省略数组说明中的大小。若要对数组的全部元素初始化,则可省略数组说明中的大小。intint a =1,2,3,4;a =1,2,3,4;6 2 一维数组的定义和使用一维数组的定义和使用 要求要求*初值的个数不能超过定义的数组长度初

7、值的个数不能超过定义的数组长度C规定,只有静态数组(规定,只有静态数组(static)才能初始化才能初始化,(第第7章内章内容),容),Turbo C中,允许为数组(非静态)初始化中,允许为数组(非静态)初始化区别:区别:static int a5=1,2,3;后两个元素值为后两个元素值为0int a5=1,2,3;后两个元素为后两个元素为随机数随机数 int i,a10=1,2,3,4,5,6,7,8,9,10;for(i=0;i10;i+)printf(“%d,”,ai);通过数组名和下通过数组名和下标引用数组中的标引用数组中的每一个数据每一个数据 运行结果:运行结果:1,2,3,4,5,

8、6,7,8,9,10,6 2 一维数组的定义和使用一维数组的定义和使用 有一个数组有一个数组,内有内有10个数个数,求出最小的数和它的下求出最小的数和它的下标标,然后将它与数组中的第一个数对换。然后将它与数组中的第一个数对换。71332668153206512int a10a0a i a971331682653206512定义两个临时变量定义两个临时变量 min和和 k假定第一个元素就是最小的假定第一个元素就是最小的,min=a0,k=0思思路路用用min与数组中的每一个元素与数组中的每一个元素ai比较比较,若若ai比比min小小,将将ai赋给赋给min,将下标将下标I赋给赋给k,否则否则,继

9、续比较继续比较.6 2 一维数组的定义和使用一维数组的定义和使用 2671332668153206512min=a0i=1i=2i=3i=4i=5i=6i=7i=8i=91326 min=a1 k=133 min和和k的值不变的值不变133203 min和和k的值不变的值不变11 min和和k的值不变的值不变1&min531 min和和k的值不变的值不变 121 min和和k的值不变的值不变651 min和和k的值不变的值不变min=1k=5ai=a0a0=min713316826532065126 2 一维数组的定义和使用一维数组的定义和使用 main()int i,a10,min,k;fo

10、r(i=0;i10;i+)scanf(“%d”,&ai);min=a0;for(i=1;iai)min=ai;k=i;ai=a0;a0=min;for(i=0;i10;i+)printf(“4d”,ai);printf(“%d,%d”,k,min);循环输入循环输入10个数个数循环找出最小的循环找出最小的交换数据交换数据输出数组输出数组输出最小值和原始下标输出最小值和原始下标6-3 二维数组的定义和引用二维数组的定义和引用当一个一维数组中的每个元素本身又是一当一个一维数组中的每个元素本身又是一个一维数组时,该数组为一个二维数组个一维数组时,该数组为一个二维数组一、二维数组的定义一、二维数组的定

11、义 1 格式:类型格式:类型 标识符标识符长度长度1长度长度22 二维数组元素需要两个下标表示二维数组元素需要两个下标表示例:例:int a34表示数组表示数组a中有中有3行行4列共列共12个数据个数据3 二维数组在存储空间中是按二维数组在存储空间中是按行行优先存储优先存储 int a34a00 a01 a02a23.a03第一行第一行最后一最后一个元素个元素二二、二维数组的引用、二维数组的引用原则:原则:逐一引用逐一引用数组名数组名下标下标1下标下标2下标下标1 1从从0 0到长度到长度-1-1下标下标2 2从从0 0到长度到长度-1-1方法:方法:标识符标识符N1N2a00.a31共共8个

12、数据个数据(对本例,决不可能有元素对本例,决不可能有元素a42)三、二维数组的初始化三、二维数组的初始化方法:方法:1 对全部元素赋初值对全部元素赋初值,分行,各用一个分行,各用一个 int a23=1,2,3,4,5,6;6-3 二维数组的定义和引用二维数组的定义和引用2 整体赋值,系统自动分行整体赋值,系统自动分行int a23=1,2,3,4,5,6;1,2,33 对部分元素赋初值,注意区别:对部分元素赋初值,注意区别:(1)int a23=1,2,3;(2)int a23=1,2,3;(3)int a23=0,1,2,3;当为全部元素赋值时,当为全部元素赋值时,一维长度可省略一维长度可

13、省略 int a 3=1,2,3,4,5,6;类似可以推广到三维或多维数组类似可以推广到三维或多维数组6-3 二维数组的定义和引用二维数组的定义和引用88年年90年年王王张张李李王王张张李李4 5 4 3 5 3 4 3 5 4 3 3 3 5 4 3 3 5 3 5 3 5 5 3 教学教学 科研科研 文体文体 其他其他用数组定义用数组定义 int a?a111=?6-3 二维数组的定义和引用二维数组的定义和引用若定义若定义int a34,则对则对a的正确引用是:的正确引用是:A)a 2 4 B)a 1,3 C)a 1+1 0 D)a(2)(1)以下二维数组说明方式中正确的是:以下二维数组说

14、明方式中正确的是:A)int a3;B)float a(3,4);C)double a14;D)float a(3)(4);引用引用假设二维数组假设二维数组a有有m列,则计算任一元素列,则计算任一元素aij在数中的位置的公式为:在数中的位置的公式为:i*m+j+1即即a00位于数组的第一个位置上位于数组的第一个位置上i*m+j+16-3 二维数组的定义和引用二维数组的定义和引用6-3 二维数组的定义和引用二维数组的定义和引用例题:不用输入,自动生成下列矩阵例题:不用输入,自动生成下列矩阵1 2 3 4 51 1 6 7 81 1 1 9 101 1 1 1 111 1 1 1 1元素值为元素值

15、为 1按按行行递递增增main()main()int int i,j,a55;i,j,a55;k=2;k=2;for(i=0;i5;i+)for(i=0;i5;i+)/*按行循环按行循环 */for(j=0;j5;j+)for(j=0;j5;j+)/*按按列循环列循环 */if(j=i)aij=1;if(j=i)aij=1;/*下下三角三角 */else aij=k+;else aij=k+;/*上上三角三角 */for(i=0;i5;i+)for(i=0;i5;i+)for(j=0;j5;j+)for(j=0;j5;j+)printfprintf(“%4d”,aij);(“%4d”,aij)

16、;printfprintf(“n”);(“n”);/*输输出一行后换行出一行后换行 */6-4 字符数组的定义和引用字符数组的定义和引用用来存放字符数据的数组是用来存放字符数据的数组是字符数组字符数组。字符数组中的一个元素存放一个字符数组中的一个元素存放一个字符字符。定义方式与前面介绍的类似。定义方式与前面介绍的类似。例:例:char c10,d23;由于字符型与整型是互相通用由于字符型与整型是互相通用的,因此也可定义的,因此也可定义 int c10;与前面介绍的类似,只是数组与前面介绍的类似,只是数组的每一个元素对应一个字符。的每一个元素对应一个字符。static char c10=I,a,

17、m,n,a,p,p,y;static char c23=,*,*,*;6-4 字符数组的定义和引用字符数组的定义和引用原则:原则:逐一引用逐一引用标识符标识符N1N2方法:方法:数组名数组名下标下标1下标下标2下标下标1 1从从0 0到长度到长度-1-1下标下标2 2从从0 0到长度到长度-1-1a00.a31共共8个数据个数据例例1输出一个字符输出一个字符串串main()static char c11=I,a,m,a,b,o,y;int i;for(i=0;i10;i+)printf(%c,ci);printf(n);main()char a55,i,j;*for(i=0;i5;i+)*fo

18、r(j=0;j5;j+)*if(j=0|i=j)*aij=*;*else aij=;for(i=0;i5;i+)for(j=0;j5;j+)printf(%c,aij);printf(n);6-4 字符数组的定义和引用字符数组的定义和引用 在在C语言中,语言中,同时,为了测同时,为了测定字符串的实际长度,在定字符串的实际长度,在C语言规定了一个语言规定了一个字符字符0),),如一个字符串第如一个字符串第10个字符为个字符为0,则此字符串的,则此字符串的有效字符为有效字符为9个,即在遇到第一个字符个,即在遇到第一个字符0时,表示字符串结束,时,表示字符串结束,由它前面的字符组成字符串。由它前面的

19、字符组成字符串。系统对字符串常量也自动加一个系统对字符串常量也自动加一个0 作为结束符,当然在定作为结束符,当然在定义字符数组时应估计实际字符串长度。义字符数组时应估计实际字符串长度。对字符数组对字符数组,可以用字符串常量来使字符数组初始化。,可以用字符串常量来使字符数组初始化。如:如:static char c=“I am happy”;或或static char c=“I am happy”;此时系统自动在串尾加此时系统自动在串尾加 0。6-4 字符数组的定义和引用字符数组的定义和引用输入输出有两种方式:输入输出有两种方式:逐个字符输入输出。用逐个字符输入输出。用“%c”将整个字符串一次输

20、入输出。用将整个字符串一次输入输出。用“%s”输出应注意的问题输出应注意的问题static char c=“china”;printf(“%s”,c);输出字符不包括结束符输出字符不包括结束符0用用“%s”格式输出字符时,格式输出字符时,printf函数中的输出项是字符函数中的输出项是字符数数组名组名,而不是数组元素名。,而不是数组元素名。如果数组长度大于字符串实际长度,也只输出到如果数组长度大于字符串实际长度,也只输出到0结结束束如果一个字符数组中包含一个以上如果一个字符数组中包含一个以上0,则遇到第一个,则遇到第一个0时输出就结束。时输出就结束。输入时应注意:输入时应注意:在使用在使用sc

21、anf函数时,若输入字符串,用函数时,若输入字符串,用“%s”格式,则后面格式,则后面跟跟数组名数组名,且不带且不带“&”符号符号,数组名指向该数组的起始地址。,数组名指向该数组的起始地址。6-4 字符数组的定义和引用字符数组的定义和引用六、字符串处理函数六、字符串处理函数puts(字符数组)字符数组)将以将以0结束的字符序列输出到终端,使用结束的字符序列输出到终端,使用puts函数输出的字符函数输出的字符串中可以包含转义字符。串中可以包含转义字符。gets(字符数组)字符数组)从终端输入一个字符串到字符数组,并且得到一个函数值,该函从终端输入一个字符串到字符数组,并且得到一个函数值,该函数值

22、是字符数组的起始地址。数值是字符数组的起始地址。main()char str13;gets(str);puts(str);Computer&C Computer&Cstrcat(字符数组字符数组1,字符数组,字符数组2)连接两个字符数组中的字符串,把字符串连接两个字符数组中的字符串,把字符串2接到字符串接到字符串1的后面,结果的后面,结果放到字符数组放到字符数组1中,函数调用后得到一个函数值中,函数调用后得到一个函数值-字符数组字符数组1的地址。的地址。说明:说明:字符数组字符数组1必须足够大,以便容纳连接后的新字符串必须足够大,以便容纳连接后的新字符串连接时,自动取消数组连接时,自动取消数组

23、1后的后的0,只在新串最后保留一个,只在新串最后保留一个06-4 字符数组的定义和引用字符数组的定义和引用strcpy(字符数组字符数组1,字符串,字符串2)它是它是“字符串拷贝函数字符串拷贝函数”,作用是将字符串,作用是将字符串2拷贝到数组拷贝到数组1中去。中去。说明:说明:字符数组字符数组1必须足够大,以便容纳被拷贝的字符串。必须足够大,以便容纳被拷贝的字符串。“字符数组字符数组1”必须写成数组名形式,必须写成数组名形式,“字符串字符串2”可以是字符可以是字符数组名,也可以是一个字符串常量数组名,也可以是一个字符串常量 如:如:strcpy(str1,str);strcpy(str1,Ch

24、ina);拷贝时连同字符串后面的拷贝时连同字符串后面的0一起拷贝到字符数组一起拷贝到字符数组1中中;不能用赋值语句将一个字符串常量或字符数组直接赋给一个字不能用赋值语句将一个字符串常量或字符数组直接赋给一个字符数组符数组 如:如:str1=“China”为非法为非法;可以用可以用strcpy函数将字符串函数将字符串2中前面若干个字符拷贝到字符数组中前面若干个字符拷贝到字符数组1中去中去;strcpy(str1,str2,2)拷贝前拷贝前2个字符,然后再加一个个字符,然后再加一个06-4 字符数组的定义和引用字符数组的定义和引用strcmp(字符串字符串1,字符串,字符串2)作用作用:比较字符串

25、比较字符串1和字符串和字符串2 方法:方法:对两个字符串自左至右逐个相比,直到出现不同的字符或遇对两个字符串自左至右逐个相比,直到出现不同的字符或遇到到0为止,如全部字符相同,则认为相等;若出现不相同的字符,为止,如全部字符相同,则认为相等;若出现不相同的字符,则以第一个不相同的字符的比较结果为准,比较的结果由函数值带回。则以第一个不相同的字符的比较结果为准,比较的结果由函数值带回。字符串字符串1=字符串字符串2,函数值为函数值为0字符串字符串1字符串字符串2,函数值为一正整数函数值为一正整数字符串字符串1字符串字符串2,函数值为一负整函数值为一负整(记忆方法:绝对值)(记忆方法:绝对值)st

26、rlen(字符数组)字符数组)是测试字符串长度的函数,函数的值为字符串中的实际长度,不包是测试字符串长度的函数,函数的值为字符串中的实际长度,不包括括0在内。在内。strlwr(字符串)字符串)将字符串中大写字母换成小写字母。将字符串中大写字母换成小写字母。strupr(字符串)字符串)将字符串中小写字母换成大写字母。将字符串中小写字母换成大写字母。6-4 字符数组的定义和引用字符数组的定义和引用6-4 应用实例应用实例int a10,已经赋值,已经赋值,如何进行排序?如何进行排序?1.选择排序选择排序2.起泡排序起泡排序3.插入排序插入排序找出数组中最小的,与第一个元找出数组中最小的,与第一

27、个元素对换,再在其余素对换,再在其余9重复上述操作重复上述操作顺序比较相邻两元素的大小,若顺序比较相邻两元素的大小,若左边元素比右边的大,则交换,左边元素比右边的大,则交换,否则不交换,比较需进行多次否则不交换,比较需进行多次假定第一个元素是合适的,取出第假定第一个元素是合适的,取出第二个元素与之比较,若小,插到前二个元素与之比较,若小,插到前面否则,位置不变,再将第三个元面否则,位置不变,再将第三个元素与前面两个比较素与前面两个比较,放到有序序列,放到有序序列中合适的位置,依次类推中合适的位置,依次类推.6-4 应用实例应用实例 main()main()int int i,j,min,a10

28、,k;i,j,min,a10,k;for(i=0;i=9;i+)for(i=0;i=9;i+)scanfscanf(“%d”,&ai);(“%d”,&ai);for(j=0;j9;j+)for(j=0;j9;j+)min=aj;min=aj;k=j;k=j;for(i=j+1;iai)for(i=j+1;iai)m=ai;k=i;m=ai;k=i;ak=aj;ak=aj;aj=min;aj=min;for(i=0;i=9;i+)for(i=0;i=9;i+)printfprintf(“%d ”,ai);(“%d ”,ai);起泡排序起泡排序:数组数组:(9,7,18,3,4,10,8)(1)9

29、,7,18,3,4,10,8 交换交换7,9,18,3,4,10,8 不交换不交换7,9,18,3,4,10,8 交换交换7,9,3,18,4,10,8 交换交换7,9,3,4,18,10,8 交换交换7,9,3,4,10,18,8 交换交换7,9,3,4,10,8,18 第一轮比较结束第一轮比较结束,较较小的数向前移动小的数向前移动,较较大的数向后移动大的数向后移动7-4 应用实例应用实例(2)7,9,3,4,10,8,18 不交换不交换 7,9,3,4,10,8,18 交换交换 7,3,9,4,10,8,18 交换交换 7,3,4,9,10,8,18 不交换不交换7,3,4,9,10,8,

30、18 交换交换7,3,4,9,8,10,18 7,3,4,9,8,10,18 不交换不交换第二轮比较结束第二轮比较结束6-4 应用实例应用实例(3)7,3,4,9,8,10,18 交换交换 3,7,4,9,8,10,18 交换交换 3,4,7,9,8,10,18 不交换不交换 3,4,7,9,8,10,18 交换交换不交换不交换 3,4,7,8,9,10,18 3,4,7,8,9,10,18 不交换不交换第三轮比较结束第三轮比较结束 3,4,7,8,9,10,18 (4)3,4,7,8,9,10,18 6-4 应用实例应用实例6-4 应用实例应用实例 main()main()int int i

31、,j,m,a11;i,j,m,a11;for(i=1;i=10;i+)for(i=1;i=10;i+)scanfscanf(“%d”,&ai);(“%d”,&ai);/*输入输入N N个整数个整数 */for(j=1;j=10;j+)for(j=1;j=10;j+)/*N-1 N-1轮排序处理轮排序处理 */for(i=1;i=10-j;i+)for(i=1;iai+1)if(aiai+1)m=ai;m=ai;/*交换交换数据数据 */ai=ai+1;ai=ai+1;ai+1=m;ai+1=m;for(i=1;i=10;i+)for(i=1;i=10;i+)printfprintf(“%d”,

32、ai);(“%d”,ai);例例2:输入一行字符,统计有多少个单词,单词用空格分隔。输入一行字符,统计有多少个单词,单词用空格分隔。如:如:I am a student.#include stdio.hmain()char string81,c;int i,num=0,word=0;gets(string);for(i=0;(c=stringi)!=0;i+)if(c=)word=0;else if(word=0)word=1;num+;printf(There are%d words in the linen,num);6-4 应用实例应用实例例例3任输入十个国家的名字,按由小到大排序任输入

33、十个国家的名字,按由小到大排序。#include stdio.hmain()char a1020,b20;int i,j;for(i=0;i10;i+)gets(ai);for(i=0;i9;i+)for(j=i+1;j0)strcpy(b,ai);strcpy(ai,aj);strcpy(aj,b);for(i=0;i10;i+)printf(%sn,ai);6-4 应用实例应用实例第第6章章 习题习题1.1.下面不能把字符串:下面不能把字符串:Hello!Hello!赋给数组的语句是赋给数组的语句是A A)static char b110=H,e,l,l,o,!;static char b

34、110=H,e,l,l,o,!;B B)static char b210;b2=Hello!;static char b210;b2=Hello!;C C)static char b310;static char b310;strcpystrcpy(b3,Hello!);(b3,Hello!);D D)static char b410=Hello!;static char b410=Hello!;2、若二维数组若二维数组a 有有m列,则列,则aIj前的元素个数为前的元素个数为:A)j*m+I B)I*m+j C)I*m+j-1 D)I*m+j+1 3、下面程序段运行结果是:下面程序段运行结果是

35、:char c5=a,b,0,c,d,0;printf(“%s”,c);A)ab B)ab C)ab c D)ab04、以下对以下对S的初始化,不正确的是:的初始化,不正确的是:A)char s5=“abc”B)char s5=a,b,c;C)char s5=;D)char s5=“abcdef”;5、有下面程序段:有下面程序段:char a3,b=“china”;a=b;printf(“%s”,a);则则A)运行后输出运行后输出china B)运行后输出运行后输出chC)运行后输出运行后输出chi D)编译出错编译出错第第6章章 习题习题6、若定义二维数组若定义二维数组 int a33=1,

36、2,3,4,5,6,7,8,9;int k;则下列语句的输出结果是:则下列语句的输出结果是:for (k=0;k3;k+)printf(“%d”,ak,2-k);A)3 5 7 B)3 6 9 C)1 5 9 D)1 4 7 7、判断字符串判断字符串a 和和 b 是否相等,应当使用:是否相等,应当使用:A)if (a=b)B)if(a=b)C)if(strcpy(a,b)D)if (strcmp(a,b)第第6章章 习题习题读程序,写出正确结果:读程序,写出正确结果:1、main()char a5=*,*,*,*,*int i,j,k;char space=;for(i=0;i5;i+)pri

37、ntf(“n”);printf(“”);for(j=1;j=i;j+)printf(“%c”,space);for(k=0;k5;k+)printf(“%c”,ak);*第第6章章 习题习题读程序,写出正确结果:读程序,写出正确结果:2、#include stdio.h”;#include main()char a80=“AB”,b80=“LMNP”int I=0;strcat(a,b);while(aI+!=0)bI=aI;puts(b);答案:LBLMNP注意:当b 赋值时,I的值已递增即 b1=a1,而b0仍保持原来的值L第第6章章 习题习题程序填空:数组程序填空:数组A包括包括10个整

38、型元素。下面程序是求出个整型元素。下面程序是求出A中各相邻两中各相邻两个元素的和,并存入数组个元素的和,并存入数组B中,按每行中,按每行3 个元素的形式输出,请填空。个元素的形式输出,请填空。main()int a10,b10,I;for(I=0;I10;I+)scanf(“%d”,&aI);for(_;I10;I+);_;for(I=1;I10;I+)printf(“%3d”,bI);if(_=0)printf(“n”);第第6章章 习题习题 6.1 用用“筛法筛法”求求1100以内的素数。以内的素数。#include math.h main()int i,j,count=0,a101;fo

39、r(i=1;i=100;i+)ai=i;/*赋值赋值*/for(i=2;isqrt(100);i+)for(j=i+1;j=100;j+)if(ai!=0&aj!=0)if(aj%ai=0)aj=0;printf(n);/*输出输出*/for(i=2;i=100;i+)if(ai!=0)printf(%5d,ai);count+;if(count%10=0)printf(n);printf(n count=%d,count);第第6章章 习题习题6.4 6.4 main(main()int a11=1,3,5,7,9,10,13,14,35,98;int a11=1,3,5,7,9,10,13

40、,14,35,98;int i,j,k,number;int i,j,k,number;clrscr();clrscr();for(i=0;i=9;i+)printf(%5d,ai);for(i=0;i=9;i+)printf(%5d,ai);printf(nPlease input inserted data:);printf(nPlease input inserted data:);scanf(%d,&number);scanf(%d,&number);for(i=0;i=9;i+)for(i=0;inumber)k=i;break;if (ainumber)k=i;break;for(

41、i=10;ik;i-)for(i=10;ik;i-)/*依次后移一个位置依次后移一个位置*/ai=ai-1;ai=ai-1;ak=number;ak=number;/*插入插入*/printf(nThe inserted numbers:n);printf(nThe inserted numbers:n);for(i=0;i=10;i+)printf(“%5d”,ai);for(i=0;i=10;i+)printf(“%5d”,ai);第第6章章 习题习题6.6#6.6#define N 11define N 11 main()main()int i,j,aNN;int i,j,aNN;for

42、(i=1;iN;i+)/for(i=1;iN;i+)/*初值初值*/aii=1;ai1=1;aii=1;ai1=1;for(i=3;iN;i+)for(i=3;iN;i+)for(j=2;j=i-1;j+)for(j=2;j=i-1;j+)aij=ai-1j-1+ai-1j;aij=ai-1j-1+ai-1j;for(i=1;iN;i+)/for(i=1;iN;i+)/*输出输出*/for(j=1;j=i;j+)for(j=1;j=i;j+)printf(%6d,aij);printf(%6d,aij);printf(n);printf(n);printf(“n”);printf(“n”);第

43、第6章章 习题习题6.7 6.7 main()main()int a int a3 34 4 ,i,j,i,j,x,x,k,max,maxi,maxjk,max,maxi,maxj;for(i=0;i3;i+)for(i=0;i3;i+)for(j=0;j4;j+)for(j=0;j4;j+)scanfscanf(“%d”,&x);aij=x;(“%d”,&x);aij=x;for(i=0;i3;i+)for(i=0;i3;i+)max=ai0;maxi=i;max=ai0;maxi=i;maxjmaxj=0;=0;for(j=1;j4;j+)for(j=1;j4;j+)if(maxaij)i

44、f(maxaij)max=aij;maxi=i;max=aij;maxi=i;maxjmaxj=j;=j;min=a0min=a0maxjmaxj;for(k=1;k3;k+)for(k=1;k3;k+)if(minmkif(minmkmaxjmaxj)min=ak)min=akmaxjmaxj;if(max=min&k=maxi)if(max=min&k=maxi)printfprintf(“%d row(“%d row andianandian:%d n”,maxi,max);:%d n”,maxi,max);else else printfprintf(“%d row(“%d row w

45、u andianwu andiann”);n”);第第6章章 习题习题6.8#include stdio.h main()int i,j,upp,low,dig,spa,oth;char text380;upp=low=dig=spa=oth=0;printf(Please input the paper(3 line)n);for(i=0;i3;i+)gets(texti);for(i=0;i3;i+)for(j=0;j=A&textij=a&textij=0&textij=9)dig+;else if(textij=)spa+;else oth+;printf(n);for(i=0;i3;

46、i+)puts(texti);printf(upper case:%d,lower case:%d,digist:%d,space:%d,others:%d,upp,low,dig,spa,oth);第第6章章 习题习题6.11编一程序,将两字符串连接起来,不用编一程序,将两字符串连接起来,不用strcat函数。函数。main()static char s180,s280;int i=0,j=0;scanf(%s,s1);scanf(%s,s2);while(s1i!=0)i+;while(s2j!=0)s1i+=s2j+;s1i=0;printf(%sn,s1);第第6章章 习题习题1、输入

47、、输入N个数到数组中(个数到数组中(N最多为最多为100),选出所有大),选出所有大 于于N个数的平均值的那些数。个数的平均值的那些数。2 2、编写一个从键盘输入编写一个从键盘输入1010个学生的成绩,统计最高分、个学生的成绩,统计最高分、最低分及平均分。最低分及平均分。3 3、任输入任输入n个正整数个正整数,将将n n个数按由小到大顺序排序。个数按由小到大顺序排序。4、任输入任输入20个正整数,找出其中素数,并按由小到大个正整数,找出其中素数,并按由小到大 排好序。排好序。5、输入一个二维矩阵,求两条对角线元素及周边元素之、输入一个二维矩阵,求两条对角线元素及周边元素之 和及该二维数组元素的最小值。和及该二维数组元素的最小值。第第6章章 习题习题 6、编程输出入下数组:0 1 1 1 1 1 0-1 0 1 1 1 0 -1 -1 -1 0 1 0 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 0 1 0 -1 -1-1 0 1 1 1 0 -1 0 1 1 1 1 1 0提示:提示:矩阵分四部分考虑矩阵分四部分考虑第第6章章 习题习题

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(数组的基本概念一维数组二维数组第课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|