C语言程序设计与数据结构

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计与数据结构
7.1 一维数组
7.1.1 一维数组的定义与初始化 7.1.1.1 一维数组的定义
一维数组的定义格式为: 类型说明符 数组名 [常量表达式];
说明: (1) 数组的类型指数组元素的取值类型。对于上例,即说明该数组a中的10个 元素都是整型。 (2) 数组名必须是合法标识符,也就是说必须符合标识符的命名规则; (3) 数组名不能与同一程序中的其它变量同名; (4) 若用方括号中的整数n来表示数组元素的总数,则数组的第一个元素的下 标为0(称为数组下标的下界),最后一个为n-1(称为数组下标的上界)。对 于上例,数组中含有10个元素,分别是:a[0],a[1],a[2],……,a[9]。 (5) 不能在方括号中用变量来表示元素的个数。 (6) 允许在同一个说明中,说明相同类型的多个数组和多个变量。 (7) 可以使用在编译预处理#define中定义的符号常量。
int a[10]; a[7]=6;
C语言程序设计与数据结构
7.1.3 一维数组元素的赋值
数组定义之后,如果不对其进行初始化,则其值可通过赋值语句获 或者可从键盘、文件等读取获得。现以从键盘接收数据为例: 【例7.1】从键盘输入十个数据给数组a赋值,然后把数组a的值复制到数组
b中。 main( )
类型说明符 数组名[常量表达式1][常量表达式2]; 其中常量表达式1表示第一维下标的长度,常量表达式2 表示第二维下标
的长度。 例如: int a[3][4]; 说明了一个三行四列的数组,数组名为a,其下标变量的
类型为整型。该数组的下标变量共有3×4个,即: a[0][0],a[0][1],a[0][2],a[0][3]
找,代码见课本。
C语言程序设计与数据结构
Hale Waihona Puke Baidu
7.2 二维数组
二维数组:数组元素是双下标变量的数组。二维数组的数组 素可以看作是排列为行列的形式(矩阵)。二维数组也用统一的数组名 标识,第一个下标表示行,第二个下标表示列。下标从0开始。 7.2.1 二维数组的定义与初始化 7.2.1.1 二维数组的定义 二维数组定义的一般形式是:
要求: 掌握一维数组的定义及应用; 掌握二维数组的的定义及应用应用; 掌握字符数组及字符串处理函数的应用; 掌握数组在函数中的应用及常用的查找、排序方法。 重点: 一维数组及二维数组的应用; 数组在函数中的应用及常用的排序方法。
C语言程序设计与数据结构
主要内容
7.1 一维数组 7.2 二维数组 7.3 字符数组 7.4 数组在函数中的应用 7.5 折半查找 7.6 数组元素排序 7.7 典型习题分析解答
C语言程序设计与数据结构
7.1.2 一维数组元素的引用
数组元素引用的一般形式为: 数组名[下标]
其中的下标只能为整型常量或整型表达式。如果为小数时,C编译将自动取整。例 如,a[6],b[i+j],b[i++]都是合法的数组元素。
数组元素通常也称为下标变量。必须先定义数组,才能使用下标变量。在C语言 中只能逐个地使用下标变量,而不能一次引用整个数组。例如,单独使用一个 下标变量:
{ int a[10],b[10],i; for(i=0;i<10;i++) scanf(" %d",&a[i]); for(i=0;i<10;i++) b[i]=a[i]; for(i=0;i<10;i++) printf("%d",b[i]); }
C语言程序设计与数据结构
7.1.4 顺序查找
顺序查找即为从数组的一端开始,逐个进行数组元素的值和给定值x的比 较,若某个元素的值和给定值x相等,则查找成功;反之,若直至最后 一个数组元素,其值和给定值x都不相等,则表明数组中没有所查的数 据,查找不成功。
【例7.2】已知存放在a数组中的数据两两不相同,在a数组中查找和x值相 同的元素的位置。若找到,输出该值和其在a数组中的位置;若没找到, 输出相应的提示信息。
#define N 100 main() { int a[N],x,n,i,flag=-1; printf("Input n:\n"); scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); printf("Input x:\n"); scanf("%d",&x);
当{ }中值的个数少于元素个数时,只给前面部分元素赋值。 例如: int a[10]={0,1,2,3,4}; 表示只给a[0]~a[4]这5个元素赋值,而后5个元素自动赋0值。 (2)能给元素逐个赋值,但不能给数组整体赋值。 例如给十个元素全部赋1值,只能写为: int a[10]={1,1,1,1,1,1,1,1,1,1}; 而不能写为: int a[10]=1; (3)如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。 例如: int a[5]={1,2,3,4,5}; 可写为: int a[]={1,2,3,4,5};
C语言程序设计与数据结构
7.1.1.2 一维数组的初始化
初始化赋值的一般形式为: 类型说明符 数组名[常量表达式]={值,值……值};
其中在{ }中的各数据值即为各元素的初值,各值之间用逗号间隔。 例如: int a[10]={ 0,1,2,3,4,5,6,7,8,9 }; 说明: (1)可以只给部分元素赋初值。
a[1][0],a[1][1],a[1][2],a[1][3] a[2][0],a[2][1],a[2][2],a[2][3] 如何在一维存储器中存放二维数组,可有两种方式:一种是按行排列, 即放完一行之后顺次放入第二行。另一种是按列排列, 即放完一列之后 顺次放入第二列。在C语言中,二维数组是按行排列的。
C语言程序设计与数据结构
for(i=0;i<n;i++) if(a[i]==x) { flag=i; break; } if(flag!=-1) printf("%d index is
%d",x,flag+1); else printf("%d donnt be founded!\n",x); 对于上例,也可以通过设监视哨的方法对数组倒着查
相关文档
最新文档