C语言程序设计 王煜 等 第9章 数组类型

C语言程序设计 王煜 等 第9章 数组类型

ID:40238549

大小:618.00 KB

页数:82页

时间:2019-07-28

C语言程序设计 王煜 等 第9章 数组类型_第1页
C语言程序设计 王煜 等 第9章 数组类型_第2页
C语言程序设计 王煜 等 第9章 数组类型_第3页
C语言程序设计 王煜 等 第9章 数组类型_第4页
C语言程序设计 王煜 等 第9章 数组类型_第5页
资源描述:

《C语言程序设计 王煜 等 第9章 数组类型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

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;如果在定义数组时完成数组的初始化操作,则需要将数组元素的初值依次放在一对花括弧中,并用赋值号与数组连接。定义数组时赋初值的形式为:存储类型数据类型数组名[数组长度]={初值列表};花括弧内各个初值之间用逗号分隔,数值类型必须与数组类型一致。系统将按初值的排列顺序,顺

4、次给数组元素赋值。例如,语句“intarr[10]={0,1,2,3,4,5,6,7,8,9};”花括弧中初值的数量必须小于等于数组长度。当初值数量小于数组长度时,数值型数组的后面没有初值的元素由系统自动赋值为0。9.1一维数组若给数组的所有元素赋初值,可以省略数组的长度。系统会根据所赋初值的个数确定数组的长度。例如,intarr[]={1,2,3,4,5,6,7,8,9};如果是auto存储类型的数组未赋初值,数组元素的值是不确定的。而static存储类型的数值型数组未赋初值,编译系统会在编译时将元素全部初始化

5、为0。9.1一维数组一维数组应用举例【例9.1】求100个整数的平均值。#include“stdio.h”main(){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

6、[i]);printf("average=%7.2f",ave);}9.1一维数组【例9.2】编写程序,找出10个整数中的最小值及其位置。解题思路:首先输入10个整数,然后找出其中的最小值及其位置,最后输出结果。其中最主要的功能是求最小值及其位置,完成这一功能的主要步骤为:①假定最小值为第一个数,也就是位置min为0;②将min位置的数和数组的下一个数进行比较,如果min位置上的数大,则更改min值为更小数的位置;③如果比较完数组中所有的数,位置min上的数就是最小值,否则转向②继续执行。假设数组x的10个数

7、依次为3、2、7、1、4、8、5、11、4、9,则寻找最小值及其位置的过程应该为:9.1一维数组9.1一维数组#include"stdio.h"main(){intx[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、umisx[%d]=%d",min,x[min]);/*输出最小值*/}输入3、2、7、1、4、8、5、11、4、9的程序运行结果为:pleaseenter10numbers:32714851149↙minimumisx[3]=19.1一维数组【例9.3】采用选择法对数列进行排序。解题思路:选择法排序(设对N个数进行排序)是每次从待排序数据中选择最小的数,与相应位置上的数

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。