C语言程序设计 一维数组
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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