《c语言数组》ppt课件

上传人:tia****nde 文档编号:69551897 上传时间:2019-01-14 格式:PPT 页数:25 大小:411.82KB
返回 下载 相关 举报
《c语言数组》ppt课件_第1页
第1页 / 共25页
《c语言数组》ppt课件_第2页
第2页 / 共25页
《c语言数组》ppt课件_第3页
第3页 / 共25页
《c语言数组》ppt课件_第4页
第4页 / 共25页
《c语言数组》ppt课件_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《《c语言数组》ppt课件》由会员分享,可在线阅读,更多相关《《c语言数组》ppt课件(25页珍藏版)》请在金锄头文库上搜索。

1、引例:,从键盘依次输入10个整数,累计求和。,main() int i,s,x; for(s=0,i=1;i=10;i+), Scanf(“%d”, , Scanf(“%d”, ,构造类型数据是由基本类型数据按一定规则排序构成的数据集合体。是C语言的重要内容。,整型 实型(浮点型) 字符型(字符串) 枚举型,数组类型 结构体类型 共用体类型,基本类型,构造类型,指针类型,空类型,数组的概念 一维数组 多维数组 字符型数组与字符串,数据类型,第7章,数 组,数组的概念,数组: 数组是具有相同数据且按一定次序排列的一组数据(或变量)的集合。 数组元素: 构成一个数组的所有变量称为数组元素。 数组名

2、: 代表一个数据集合的数组的名字。数组名用标识符来命名。 下标: 一个数组元素是通过数组名和下标来标示它在数组中的位置。 下标由下标符即方括号“ ”和下标值组成。 数组按下标个数分类有:一维、二维、三维数组和多维数组。,7.1 一维数组,一维数组是数组名后只有一对下标符(方括号)的数组。,1. 一维数组的定义,格式: 数据类型 数组名元素个数;,说明: 数据类型:是指数组元素的数据类型:有int型、 float型、 char型。 数组名:代表一个数据集合的数组的名字。数组名用标识符来命名。 下标符:下标符用方括号即“ ”。不能用圆括号和其它符号。 元素个数:用来说明数组中存放元素的个数(即数组

3、含数据的数量)。可以是整型常量或整型常量表达式,不能是变量。元素个数必须大于或等于1。 数组定义在程序中的位置:一定要在引用该数组前定义。一般在程序的开始位置。,通过对数组的定义,说明数组元素的数据类型、数组名及数组含元素(数据)的最大数量。,注意: 不存在a4。因为下标值从0开始,例如:,一维数组的元素(数据)在内存中存储时,按下标递增的次序连续存放。,例: int a15;,数组名a,数组元素的数据类型为int整型数据。 数组元素的下标值从0开始. 数组元素的个数为15个,它们是:a0、a1、a2 a13、a14.,2.一维数组的存储形式,数组名a是一个地址常量,表示数组存储区的首地址,即

4、存放数组第一个元素的地址。 a 因此数组名是一个地址常量。不能对其进行赋值和进行运算 &是地址运算符,&a0表示取a0的地址。,3 一维数组的引用,与变量的引用类似,数组的引用也是先定义后引用。与变量不同的是不能对数组整体进行(读取)操作。只能对数组的元素进行操作。 数组的引用格式:数组名下标 其中: 下标可以是整型常量或整型常量表达式。 下标如果是表达式,首先计算表达式,计算的最终结果为下标值。 下标值必须是整型数。 下标值从0开始。而不是从1开始。 数组的引用应注意的是下限不能越限。即引用时的下限不能超过或等于定义时的下标值。,数组的引用就是对数组元素(数据)的读取操作。,main( )

5、int a10, i;,例1:把输入的10个整数按逆序输出,for (i=9; i=0; i - -) printf(“%d”, ai); ,for (i=0; i=9; i+) scanf(“%d”, ,练习:,输入十个数,统计并输出总和、平均值、最大值和最小值。,for(i=0; i10; i+) scanf(“%d”,sum=0; for(i=0; i10; i+) sum=sum+ai;,/*计算平均值*/ ave=sum/10;,练习:,输入十个数,统计并输出总和、平均值、最大值和最小值。,max=a0; for(i=0; imax) max=ai;,min=a0; for(i=0;

6、 i10; i+) if(aimin) min=ai;,查找:,从m个数中去查找x的值是否存在。,顺序查找:从头到尾逐个去找 折半查找:前提条件:只适用于已排好序的数列。,顺序查找:,例: for(i=0; i10; i+) if (x=ai) k=i; break;,if (k10) printf(“ x是第d个元素”, k+1); else printf(“没找到!”);,删除:,例: for(i=0; i10; i+) if (x=ai) k=i; break;,例: for(i=0; i10; i+) if (x=ai) k=i; break; if (k10) for(i=k; i1

7、0; i+) ai = ai+1; else printf(“无此数!”);,define N 10 Main( ) int aN, i, max; for (i=0; iN; i+) scanf(“%d”, ,例2:从键盘任意输入10个整数,求它们当中的最大值。,max=a0; for (i=1; imax) max=ai; printf(“max=%dn”, max); ,4、一维数组的初始化,数组的初始化就是在定义数组的同时给其数组元素赋初值。 格式:数据类型标识符 数组名元素个数=数值1,数值2, 数值n;,说明:,花括号 中的数值是给数组元素赋初值的数值。赋值是按对应次序进行,并且用

8、逗号“,”分开。 如:int x5=3,4,7,8,10;则x0=3,x1=4,x2=7,x3=8,x4=10 花括号 中的数值的个数要少于等于数组元素的个数。此时,多余的数组元素初始化的数值为0。 如:int x5= 3,4,7 ;则x0=3, x1=4, x2=7, x3=0, x4=0。 花括号 中的数值的个数多于数组元素的个数是语法错误。 在数组定义中,可缺省方括号中的元素个数,由花括号中所赋初始值的数值个数来决定数组元素个数。 如: int y = 6,4,1,7,8,10 ; 等价于int y6= 6,4,1,7,8,10 ;,任意给10个数,按由小到大对其排序,并输出结果。采用“

9、起泡”排序法. 起泡法的思路:将相邻两个数比较,将小的数调到前头(或将大的数调到后面)。,5、一维数组的应用举例,若有6个数,分别是9,8,5,4,2,0。 第一趟 (见下图): 第一次,将第1个数8和第2个数9进行比较,将小的数调到前头,即8和9对调位置。 第二次,将第2个数9和第3个数5进行比较,将小的数调到前头,既9和5对调位置。 第三次、第四次、第五次,如此进行共5次,结果得到8-5-4-2-0-9的顺序,最大的数9成为最下面的一个数。最大的数位置“沉底”,小数向上“浮起”一个位置。,第二趟对余下的5个数(8-5-4-2-0)按上述的方法进行下去。经过四次比较,得到次大的数8。如此进行

10、下去。6个数要比较5趟。结果得到:5-4-2-0-8的顺序,次大的数8“沉底”。 第一趟,比较五次。第二趟,比较四次。第三趟,比较三次。 第五趟,比较一次。第n趟,比较n-1次。 如果有n个数,则进行n-1趟比较。在第i趟的比较中要进行n-i次两两比较。,第二趟: 第1次 第2次 第3次 第4次 结果 8 5 5 5 5 5 8 4 4 4 4 4 8 2 2 2 2 2 8 0 0 0 0 0 8,第三趟: 结果 4 2 0 5,第四趟: 结果 2 0 4,第五趟: 结果 0 2,最后6个数的排序结果是: 0-2-4-5-8-9(从小到大)。,第二趟(见下图):,程序:,main( ) in

11、t a10; int i,j,t; printf(“input 10 numbers :n”); for(i=0;iai+1) t =ai; ai=ai+1; ai+1=t; printf(“the sorted numbers:n”); for(i=0;i10;i+) printf(“%d ”,ai); ,/将10个数输入数组a10中。,/j是趟次循环变量(外循环变量), /i是每次循环变量(内循环变量)。,/(按下标排序)前后两数进行比较, /前者大于后者,则两数交换位置。即 /小数在前,大数在后。,input 10 numbers: 1 0 4 8 12 65 -76 100 -45 1

12、23 the sorted numbers: -76 -45 0 1 4 8 12 65 100 123,程序:,main( ) int a11; int i,j,t; printf(“input 10 numbers :n”); for(i=1;iai+1) t =ai; ai=ai+1; ai+1=t; printf(“the sorted numbers:n”); for(i=1;i11;i+) pintf(“%d ”,ai); ,/将10个数输入数组a11中。,/j是趟次循环变量(外循环变量), /i是每次循环变量(内循环变量)。,/(按下标排序)前后两数进行比较, /前者大于后者,则

13、两数交换位置。即 /小数在前,大数在后。,input 10 numbers: 1 0 4 8 12 65 -76 100 -45 123 the sorted numbers: -76 -45 0 1 4 8 12 65 100 123,7.2 多维数组,数组名后有两个下标数组叫二维数组,有三个下标的数组叫三维数组,下标个数大于或等于2的数组叫多维数组。,1、多维数组的定义 多维数组定义的格式: 数据类型 数组名下标1下标2下标n; 说明: 数据类型、数组名的说明同一维数组的说明。 下标为整型常量或整型常量表达式。 数组元素个数为:下标1下标2 下标n 。 下标值从0开始。,x 是二维数组,共

14、有6个元素 (23=6),它们是: x00, x01, x02, x10, x11, x12。 其全部元素数值均为 int 型。,二维数组例: int x23;,三维数组例: float y234;,y 是三维数组,共有24个元素(234=24),它们是: y000 y001 y002 y003 y010 y011 y012 y013 y020 y121 y022 y023 y100 y101 y102 y103 y110 y111 y112 y113 y120 y121 y122 y123 其全部元素数值均为 float 型。,对于三维数组,也是按下标先后顺序(从最小下标值开始)存放。 如: float y234; 先放第一下标为0的行,y000 y001 y002 y003 y010 y011 y012 y013 .

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号