资源描述:
《C语言程序设计 教学课件 作者 王煜 等 第9章 数组类型.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9章数组类型9.1一维数组9.2二维数组9.3数组和函数9.4字符数组9.5指针数组9.1一维数组一维数组的定义一维数组的定义格式为:存储类型数据类型数组名[数组长度];例如,语句“floata[6],b[10];”说明:数组的存储类型可以是auto或static,但不能为register。数组的数据类型既可以是基本类型,也可以是构造类型等。数组名应符合标识符的命名规则,数组名代表的不是整个数组,而是数组所占内存空间的起始地址。数组长度表示数组元素的个数。数组长度只能是整型常量或整型常量表达式。C编译系统为数组分配连续的内存单元。数组元素
2、的相对次序由下标来表示。数组元素的下标是从0开始的整数。9.1一维数组一维数组的引用在C语言中不能引用整个数组,只能引用单个数组元素。一个数组元素就是相当于一个变量,它的使用与同类型的普通变量是相同的。一维数组元素的引用形式为:数组名[下标]数组名后方括号内是数组下标,下标表示该元素是数组的第几个元素。数组名后面的方括号内的内容只有在数组定义时才是数组的长度,其他时候都是数组下标。数组元素的下标是整型的常量、变量或表达式。下标的取值范围是[0,数组长度-1]的整型值。C程序运行时,编译系统并不检查数组元素的下标是否越界,需要编程人员自己保证
3、数组元素的下标不要越界。9.1一维数组一维数组的初始化如果在数组定义之后进行初始化操作,则只能对每个数组元素一一赋值。intarr[10],i;for(i=0;i<10;i++)arr[i]=i;如果在定义数组时完成数组的初始化操作,则需要将数组元素的初值依次放在一对花括弧中,并用赋值号与数组连接。定义数组时赋初值的形式为:存储类型数据类型数组名[数组长度]={初值列表};花括弧内各个初值之间用逗号分隔,数值类型必须与数组类型一致。系统将按初值的排列顺序,顺次给数组元素赋值。例如,语句“intarr[10]={0,1,2,3,4,5,6,7
4、,8,9};”花括弧中初值的数量必须小于等于数组长度。当初值数量小于数组长度时,数值型数组的后面没有初值的元素由系统自动赋值为0。9.1一维数组若给数组的所有元素赋初值,可以省略数组的长度。系统会根据所赋初值的个数确定数组的长度。例如,intarr[]={1,2,3,4,5,6,7,8,9};如果是auto存储类型的数组未赋初值,数组元素的值是不确定的。而static存储类型的数值型数组未赋初值,编译系统会在编译时将元素全部初始化为0。9.1一维数组一维数组应用举例【例9.1】求100个整数的平均值。#include“stdio.h”mai
5、n(){inta[100],i;floatave,sum;printf("pleaseenter100numbers:");for(i=0;i<100;i++)/*输入元素*/scanf("%d",&a[i]);for(sum=0,i=0;i<100;i++)/*求和*/sum=sum+a[i];ave=sum/100;/*求平均值*/for(i=0;i<100;i++)printf("%6d",a[i]);printf("average=%7.2f",ave);}9.1一维数组【例9.2】编写程序,找出10个整数中的最小值及其位置
6、。解题思路:首先输入10个整数,然后找出其中的最小值及其位置,最后输出结果。其中最主要的功能是求最小值及其位置,完成这一功能的主要步骤为:①假定最小值为第一个数,也就是位置min为0;②将min位置的数和数组的下一个数进行比较,如果min位置上的数大,则更改min值为更小数的位置;③如果比较完数组中所有的数,位置min上的数就是最小值,否则转向②继续执行。假设数组x的10个数依次为3、2、7、1、4、8、5、11、4、9,则寻找最小值及其位置的过程应该为:9.1一维数组9.1一维数组#include"stdio.h"main(){intx[
7、10],i,min;printf("pleaseenter10numbers:");for(i=0;i<10;i++)/*输入10个元素*/scanf("%d",&x[i]);min=0;/*给min置初值*/for(i=1;i<10;i++)/*从第1个元素开始查找最小值位置*/if(x[i]8、9↙minimumisx[3]=19.1一维数组【例9.3】采用选择法对数列进行排序。解题思路:选择法排序(设对N个数进行排序)是每次从待排序数据中选择最小的数,与相应位置上的数