C语言数组

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第18页
返 回
2-1 概述
一个大小为m的向量(一维数组):array[m] 一个大小为 的向量(一维数组): 的向量 ): 每个元素又都是一个同类型向量时 的每个元素又都是一个同类型向量时, 可以把它 描述为一个二维数组: 描述为一个二维数组: array[m][n] 注意:数组的类型相同是指:大小相同且各元素 注意:数组的类型相同是指: 的类型相同。 的类型相同。
第11页
返 回
1-6 一维数组小结
定义时用一个名字来标识一组有序同类型数 据组成的派生数据类型, 据组成的派生数据类型,它占有一片连续的内存 空间。 空间。 作为使用的个体, 作为使用的个体,数组中的每个元素都有如 下特征: 下特征 它们的类型是相同的。 它们的类型是相同的。 用下标表示顺序,下标以0为起始计数。 用下标表示顺序,下标以0为起始计数。
age[0], age[1], age[2], age[3], age[4] , , , ,
方括号称为下标运算符, 称为下标运算符 方括号称为下标运算符,具有最高优先级和从右 向左的结合性。方括号中的数字称为下标, 向左的结合性。方括号中的数字称为下标,它标 明数组元素在数组中的顺序。 明数组元素在数组中的顺序。
第15页
返 回
1-7 问题
Int num [2]与num[2]=6中的 意义如何? 中的2意义如何 与 中的 意义如何? 分别做了什么? #define max 5;与int temp[max];分别做了什么? 与 分别做了什么 建立一整形数组并输出; 输入一整数, ①建立一整形数组并输出;②输入一整数,在数 组中查找与之相等的元素,并输出其位置。 组中查找与之相等的元素,并输出其位置。 建立一整形数组,将其中最大最小数输出 将其中最大最小数输出。 建立一整形数组 将其中最大最小数输出。 在一个整形数组的第K位中插入一个数 位中插入一个数。 在一个整形数组的第 位中插入一个数。 编程将两个各有5个整数的数组合并为一个由大 编程将两个各有 个整数的数组合并为一个由大 到小排列的数组。 到小排列的数组。 将一个数组的值逆序存放。 将一个数组的值逆序存放。
第12页
返 回
1-6 一维数组小结
使用数组前, 使用数组前,先用声明语句指明数组的上述 特征,以便: 特征,以便: 用一个名字与一个数组实体相关联。 用一个名字与一个数组实体相关联。 开辟一个与数组大小相同的连续存储空间来 存放数组中的各元素。 存放数组中的各元素。 声明语句告诉编译器要为数组分配必要的空 数组被声明后, 间。数组被声明后,数组元素不必一一声明便可 以直接引用。 以直接引用。
第20页
返 回
2-2 二维数组的声明与初始化赋值
格式:类型 数组名[行的个数][列的个数]; 格式: 数组名[行的个数][列的个数]; ][列的个数 int data[10][5]; 声明整型数组data 元素个数为10*5=50 data, /* 声明整型数组data,元素个数为10*5=50 */ float score[4][4]; 声明浮点型数组score 元素个数为4*4=16 score, /* 声明浮点型数组score,元素个数为4*4=16 */
程序设计基础
组织数据之数组 组织数据之
什么是数组: 什么是数组:将一组同类型的数据按照顺 序关系组织起来,并用一个名字命名, 序关系组织起来,并用一个名字命名,保 存在内存的一片连续空间中。 存在内存的一片连续空间中。
第1页
数组与字符串
1 一维数组 2 二维数组与多维数组 3 传递数组给函数 4 字符串 5 字符串的输入与输出函数 6 字符串数组
第6页
返 回
1-2 数组中元素的表示方法
想要使用数组里的元素,利用下标完成。 想要使用数组里的元素 利用下标完成。 利用下标完成
数组元素和排列方式
返 回
第7页
1-3 数组初始化赋值
数组名[n]={初值 ,初值 ,…,初值 初值0,初值1, ,初值n-1}; 类型 数组名 初值 int day[10]={31,30,31,30,31,31,30,31,30,31}; int data[5]={1}; /* 将数组 将数组data内的所有元素值都赋值为 */ 内的所有元素值都赋值为1 内的所有元素值都赋值为 int score[]={60,75,48,92}; /* 按照初始化赋值的个数来决定数组的大小 */ int score[4]={60,75,48,92}; /*与语句 score[]={60,75,48,92};同义 与语句int 同义*/ 与语句 同义
第8页
返 回
1-4 数组的输入与输出
/* OUTPUT----
Input score:12 /* 一维数组的输入与输出 */ Input score:54 #include <stdio.h> main(void) Input score:55 { int i,score[5]; Input score:65 for(i=0;i<=4;i++) Input score:79 { printf("Input score:"); ***Output*** scanf("%d",&score[i]); score[0]=12 } score[1]=54 printf("***Output***\n"); score[2]=55 for(i=0;i<=4;i++) score[3]=65 printf("score[%d]=%d\n",i,score[i]); score[4]=79 } ---------------------*/
第5页
返 回
1-1 数组的声明
示例: 示例:输出数组个别元素的长度及数组的总长度 main() { int score[10]; printf("sizeof(score[1])=%d\n",sizeof(score[1])); printf("sizeof(score)=%d\n",sizeof(score)); } OUTPUT sizeof(score[1])=4 sizeof(score)=40
1 一维数组
1-1 数组的声明 1-2 数组中元素的表示方法 1-3 数组初始化赋值 1-4 数组的输入与输出 1-5 数组越界的检查 1-6 一维数组小结 1-7 问题
返 回
第3页
1-1 数组的声明
一维数组也称向量, 一维数组也称向量,用于组织具有一维顺序关系 的一组同类型数据。如一组人的年龄: 的一组同类型数据。如一组人的年龄: age(18,20,17,21,19) 可以组成一个名为age、int类型、大小为 的一维 、 类型 大小为5的一维 类型、 可以组成一个名为 数组中, 数组中,各元素分别为
返 回
第4页
1-1 数组的声明
格式: 个数]; 格式:类型 数组名 [个数 个数 示例: 示例: int score [10]; /* 声明一个整型数组 声明一个整型数组score,元素个数为 */ ,元素个数为10 float tempe[7]; /* 声明一个浮点数数组 声明一个浮点数数组tempe,元素个数为 */ ,元素个数为7 char name[12]; /* 声明一个字符数组 声明一个字符数组name,元素个数为 */ ,元素个数为12
第9页
返 回
1-5 数组越界的检查
#define MAX 5 printf("Input score:"); scanf("%d",&score[i]); main(void) }while(score[i++]>0); * OUTPUT----{ int score[MAX]; num=i-1; Enter for(i=0;i<num;i++) 0 stopping input!! int i=0,num; Input sum+=score[i]; score:60 float sum=0.0f; printf("Average ofscore:50 Input all is %.2f\n",sum/num); printf("Enter 0 stopping input!!\n"); } Input score:70 do {if(i==MAX) Input score:80 {printf("No more space!!\n"); Input score:90 i++; No more space!! break; Average of all is 70.00 }
第14页
返 回
Hale Waihona Puke Baidu
1-6 一维数组小结
数组的声明语句是定义性声明, 数组的声明语句是定义性声明,在声明的同时可以对数组 各元素初始化, 各元素初始化,初始化表达式按元素顺序依次写在一对花 括号内。 语言还允许使用下列初始化的省略方式 语言还允许使用下列初始化的省略方式: 括号内。C语言还允许使用下列初始化的省略方式: (1)初始化时也可以不指定数组的大小,编译器会根据 )初始化时也可以不指定数组的大小, 初始值的个数自动决定数组大小。 初始值的个数自动决定数组大小。 (2)允许省略为 的元素值。 的元素值。 )允许省略为0的元素值 (3)当最后的几个元素初值为 时,可以只写出前面的数 )当最后的几个元素初值为0时 但数组大小不可省略。只将部分元素初始化后, 列,但数组大小不可省略。只将部分元素初始化后,其它 元素的初始值隐含的为0。 元素的初始值隐含的为 。 (4)有的 (如MSC)编译器规定只能对外部的或静态 )有的C( ) 的数组在声明语句中初始化, 的数组在声明语句中初始化,而ANSI C(包括 (包括Turbo C) ) 允许对自动型数组在声明语句中进行初始化。 允许对自动型数组在声明语句中进行初始化。
第10页
问题:修改程序结构, 问题:修改程序结构,使之符合结构化程序组织要求
返 回
1-6 一维数组小结
数组是一种整体定义、个别使用的数据结构。 数组是一种整体定义、个别使用的数据结构。 是一种整体定义 作为一个整体,数组有如下特征: 作为一个整体,数组有如下特征: 数组名:用以对数组各元素的整体标识。 数组名:用以对数组各元素的整体标识。 类型:数组各元素的类型。 类型:数组各元素的类型。 维数:标识数组元素所需的下标个数。 维数:标识数组元素所需的下标个数。 大小:可容纳的数组元素个数。 大小:可容纳的数组元素个数。
第16页
返 回
2 二维数组与多维数组
虽然一维数组可以处理一般简单的数据, 虽然一维数组可以处理一般简单的数据,但 是在实际应用中仍然不足,所以C语言也提供了 是在实际应用中仍然不足,所以 语言也提供了 二维数组以上的多维数组供使用。 二维数组以上的多维数组供使用。 2-1 2-2 2-3 2-4 2-5 概述 二维数组的声明与初始化赋值 二维数组元素的引用及存取 多维数组 问题
第19页
返 回
2-1 概述
二维数组中的每个元素要用两个下标来表示, 二维数组中的每个元素要用两个下标来表示, 前一个称为行下标,后一个称为列下标。 前一个称为行下标,后一个称为列下标。 若一个二维数组array[m][n]的每个元素也都 的每个元素也都 若一个二维数组 是一个同类型的大小为k的向量, 是一个同类型的大小为k的向量,则该二维数组可 以表示成一个三维数组: 以表示成一个三维数组:array[m][n][k] 它是一个三级向量:最后一个维称列, 它是一个三级向量:最后一个维称列,之前一 个维称行,最前一个维称页。 个维称行,最前一个维称页。如此类推可以推得多 维数组就是多级向量,它的元素要用数组名加n个 维数组就是多级向量,它的元素要用数组名加 个 下标来标识。 下标来标识。
业务员 1 2 2002年销售量 年销售量 第一季 30 33 第二季 35 34 第三季 26 30 第四季 32 29
第13页
返 回
1-6 一维数组小结
显然, 显然,用数组处理一组具有顺序关系的数据 比简单变量要方便得多。 比简单变量要方便得多。 注意, 不对数组进行下标超界检查 不对数组进行下标超界检查, 注意,C不对数组进行下标超界检查,当所 使用的下标超出声明时给出的范围时, 使用的下标超出声明时给出的范围时,将会导致 混乱。 混乱。
相关文档
最新文档