C语言程序设计教学做一体化
C语言程序设计 语言程序设计 教学做一体化主编 滕泓虬
中国水利水电出版社
C语言程序设计教学做一体化
TC IDE
模块六
数组
数组是指由一组同类型数据组成的有序 数据的集合。用一个统一的数组名称来 标识这一组数据;用下标来指示数组中 的每一个元素。下面我们介绍C语言中如 何定义和使用数组。
C语言程序设计教学做一体化
6.1一维数组 一维数组学习目标 (1)掌握一维数组的概念。 (2)掌握一维数组的定义和引 用。
C语言程序设计教学做一体化
TC IDE
6.1 一维数组一、一维数组的定义方法: 一维数组的定义方法: 类型标识符 E.g. int 数组名[元素总数 ; 数组名 元素总数]; 元素总数 a[5];
char c[10];
C语言程序设计教学做一体化
二、一维数组的初始化 1、数组的初始化:指在定义数组时对各元素 、数组的初始化: 指定初始值。 指定初始值。E.g. static char c[7]={‘c’, ‘ ’, ‘l’, ‘a’, ‘n’, ‘g’, ‘u’}; 1、全体初始化: 、全体初始化: static int a[ ]={1,3,5,7,9}; 2、部分初始化 、 static int a[5]={1,3,5};
C语言程序设计教学做一体化
说明: (1)如果对数组的全部元素赋以初值,定义时可以不 指定数组长度(系统根据初值个数自动确定)。如果 被定义数组的长度,与初值个数不同,则数组长度不 能省略。 (2)“初值表”中的初值个数,可以少于元素个数, 即允许只给部分元素赋初值。 (3)根据存储类型的不同,数组有静态数组(static) 和动态数组(auto)之分;根据定义的位置不同,数 组有内部数组(在函数内部定义的数组)和外部数组 (在函数外部定义的数组)之分。
C语言程序设计教学做一体化
TC IDE
三、数组元素的引用: 数组元素的引用: 数组元素的引用形式如下: 数组元素的引用形式如下: a[0] 数组名[下标 数组名 下标]; 下标 a[1] E.g. int a[5]; a[2] a[0]=2 ; a[3] a[1]=3; a[2]=a[1]; a[3]=8; a[4] a[4]=10; printf(“%d”,a[1]); Notes:(1)数组只有在定义后,方可引用。 ( )数组只有在定义后,方可引用。 编译不检查下标是否“ (2)C编译不检查下标是否“越界”。 ) 编译不检查下标是否 越界”
2 3 3 8 10
C语言程序设计教学做一体化
实例6_1 定义一个含10个元素的整型数组,从键盘输入 实例 各个元素值,并输出。
main() { int a[10],i; printf("Please input data:\n"); /*提示用户输入数据*/ for ( i = 0; i <= 9; i++) /*利用for语句输入数组的各个 元素值*/ scanf("%d", &a[i]); printf("The Array is:\n"); for ( i = 0; i <= 9; i++) /*利用for语句输出数组的各个 元素值*/ printf("%5d",a[i]); }
C语言程序设计教学做一体化
运行结果:
C语言程序设计教学做一体化
实例分析: 实例分析:(1)本实例定义了整型数组a[10] ,其中a是数组名,元素 个数为10,首元素是a[0],最后一个元素是a[9]。数组元素 类型为整型。 (2)需要从键盘输入10个元素值,如果不使用循环语句 来处理输入操作,那么我们要在scanf()语句中,指定10次 格式字符“
%d”和10项输出列表用以指定要获取数据的数 组元素。显然,这种方法不可取。 (3)细看第一个for 语句,初值i = 0;因此第一个从键盘 输入的值是赋给a[0]元素的(注意输入数据时要用地址符 &)。以此类推,最后一个输入是赋给元素a[9]的。输入 各元素时,按本例的scanf语句格式,应使用空格或回车 作为分隔。 (4)第二个for语句是用来输出数组各元素的, printf("%5d",a[i])语句中的格式控制符“%5d”表示用5位 列宽输出每一个元素值。
C语言程序设计教学做一体化
实例6_3用数组来处理 用数组来处理Fibonacci数列问题。 数列问题。 实例 用数组来处理 数列问题
main() { int i; int f[20] = {1,1}; /*为数组 的前 个元素赋值 为数组f的前 个元素赋值1*/ 为数组 的前2个元素赋值 for(i=2; i<20; i++) f[i] = f[i-2]+ f[i-1]; /*从第 个元素起,每一个元素等于它的前两个元 从第3个元素起 从第 个元素起, 素之和*/ 素之和 for(i=0;i<20;i++) { if ( i%5==0) printf ("\n"); /*第输出 个元素插入一个换行符 第输出5个元素插入一个换行符 第输出 个元素插入一个换行符*/ printf ("%8d", f[i]); /*用8位列宽输出每一个元素值 */ 用 位列宽输出每一个元素值 } }
C语言程序设计教学做一体化
程序运行结果如下:1 8 1 13 2 21 3 34 5 55
C语言程序设计教学做一体化
实例分析: 实例分析:(1)本实例采用了为数组元素部分初始化的方式,int f[20] = {1,1},即f[0] = 1, f[1] = 1, f[2]~f[19]的值默认为0。 (2)数列从第3项起,使用数组元素方式来求得:f[i] = f[i-2]+ f[i-1],即f[2] = f[0] + f[1],f[3] = f[1] + f[2]……,f[19] = f[17] + f[18] f[2] ,f[19] f[18]。因为数组各元素在内存中 占据独立的存储空间,因此,直接用下标方式引用各元素, 而不需像前面采用普通变量实现时,求下一项时,要不断 覆盖前两项的值。可见有些问题采用数组来解决会更方便。 89 144 233 377 610 987 1597 2584 4181 6765
C语言程序设计教学做一体化
实例6_4输出一维数组中,10个数的最大者。 输出一维数组中, 个数的最大者 个数的最大者。 实例 输出一维数组中
main() { …… 此处隐藏:1126字,全部文档内容请下载后查看。喜欢就下载吧 ……