C语言程序设计 一维数组

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

5.1一维数组

5.1.1找最小数

【例5-1】输入10个整数,找出其中的最小数,然后输出这10个数和最小数。

参考程序如下:

/*程序5-1.c*/

#include

int main()

{

int i,min,a[10];/*定义数组*/

printf("Enter data:");/*提示输入*/

for(i=0;i<10;i++)

scanf("%d",&a[i]);/*输入10个数*/

min=a[0];/*假设下标为0的元素最小*/

for(i=1;i<10;i++)/*找最小值a[i]*/

if(a[i]

for(i=0;i<10;i++)

printf("%2d",a[i]);

printf("\nmin=%d\n",min);

return0;

}

运行结果

Enter data:3251094161837

3251094161837

min=1

数组的功能很明确,输入10个数,找出最小数,然后输出这10个数和最小数。这就要求保存输入数据,并对它们进行处理,程序中用了一个整型数组,而不是若干个整型变量来存放它们。

定义一个整型数组a后,在内存中开辟了10个连续的单元,用于存放数组的10个元素a[0]~a[9]的值,这些元素的类型都是整型,有数组名a和下标唯一确定每个元素。这些元素在内存中连续存放。在程序中使用数组,可以让一批相同类型的变量使用同一个数组变量名,用下标来相互区分。

5.1.2一维数组的定义

定义一个数组,需要明确数组变量名,数组元素的类型和数组的大小。

定义一维数组的形式为:

类型说明符数组名[常量表达式];

例如:

int a[5];

它表示数组名为a,此数组有5个元素,每个元素都是整型。编译系统为该数组在内存中分配5个连续的存储单元,这5个数组元素为a[0],a[1],a[2],a[3],a[4]。

a[0]a[1]a[2]a[3]a[4]

说明:

⑴数组名的定义规则与变量名相同,遵循标识符定名规则。

⑵常量表达式表示数组元素的个数,即数组长度,数组元素的编号从0开始。常量表达式中可以包括常量和符号常量,但必须是整数,不能包含变量。也就是说,不允许对数组进行动态定义。例如:

int a[n];/*非法数组定义,因为n是一个变量*/

⑶类型说明符可以是int、float、double和char等,例如:

char c[20];/*定义一个字符型数组*/

float f[10];/*定义一个实型数组;*/

⑷数组的下标表示元素在数组中的位置,它是一个整数,可以用常量、变量或表达式来表示。包含N个元素的数组的合法下标为0,1,2,…,N-1,其中最大的下标是N-1。对于一个数组a[10],数组中最后一个元素为a[9]。注意:不能使用数组元素a[10]。

⑸带有一个方括号的数组称为一维数组,带有两个方括号的数组称为二维数组,例如:

int a[2];float b[2][3];

表示数组a是一维数组,b是二维数组。

5.1.3数组的初始化

数组定义时可以对各元素指定初始值,称为数组的初始化。形式如下:

int x[5]={0,1,2,3,4};

表示对一个整型数组赋初值,使x[0]=0,x[1]=1,x[2]=2,x[3]=3,x[4]=4。

01234

a[0]a[1]a[2]a[3]a[4]

说明:

1.普通数组如果不初始化,其元素值为所分配内存中的垃圾值;

2.对static数组元素不赋初值,系统会自动赋以0值;

3.只给部分数组元素赋初值,例如:

int fib[10]={0,1};

对数组的前两个元素赋初值,其余元素的值为0。

4.当全部数组元素赋初值时,可不指定数组长度,例如:

int b[]={2,4,6,8,10};

上述初始化语句等价于:

int b[5]={2,4,6,8,10};

5.1.4数组的引用

由于数组有多个分量,对数组的使用只能逐个引用数组元素,不能一次引用整个数组。

其引用形式为:

数组名[下标];

下标可以是整型常量,也可以是整型表达式。例如:

a[2]=1;

a[2+1]=2;

a[i+j];(i和j为整型变量)

【例5-2】将数组array的10个元素赋初值,并输出。

/*程序名:5_2.c*/

/*程序功能:输出数组元素的值*/

/#include

int main()

{

int i,array[10];

for(i=0;i<10;i++)//初始化数组

array[i]=i;

for(i=0;i<10;i++)

printf("%2d",array[i]);

printf("\n");

}

运行结果:

0123456789

相关文档
最新文档