- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
华中科技大学计算机学院 C语言程序设计 第8章 数组 一维数组的声明、初始化和使用 数组的运算、作为函数参数的使用 字符串 、多维数组 8.1 数组概述 程序=算法+数据结构 PASCAL程序设计语言发明者Niklaus Wirth曾经说过 简单数据类型的变量 仅能描述一个单独的数据 描述能力十分有限 如何描述一群有联系的数据集合? 数组 属于构造类型 是相同数据类型数据的集合 元素 组成数组的这些数据 任何类型(简单类型、构造类型) 8.1 数组概述 数组特点 其所有元素数目固定 其所有元素类型相同 其所有元素顺序存放 数组作用 集中管理 将相关的同类型数据集中用一个标识符(数组名)表示 元素顺序存放,但可随机定位 用若干个数字序号(下标)来区别各数组元素 例如定义float score[30],可表述30位学生成绩 用数组具有什么好处? 8.1 数组概述 问题 计算全班30位同学某门课程的平均成绩 解决方法 设置30个float型变量来记录成绩 设置一个有30个float型元素的数组来记录成绩 问题分析 参与运算的平均成绩,其数据类型都相同(符合数组特点) 30位同学属于一个班,用数组可把30个成绩表示成一个整体 用数组的优点 便于循环处理 提高效率,便于书写、检查、修改(对海量数据效果更明显) 8.2 一维数组 维数 标识一个数组元素所需要使用的下标的个数 一维数组 只有一个下标 可用于表示一个线性的数据队列 使用数组的要求 先声明数组 对它进行初始化,然后才能使用 8.2.1 一维数组的声明 要解决三个问题 确定数组的数据类型 给数组定义一个名字,以便在程序中使用 指明数组的大小,即数组中元素的个数 声明形式 [存储类型说明符] [类型修饰符] 类型说明符 数组名[常量表达式]={初值表}; 存储类型说明符:extern、static 类型修饰符:const、volatile 数组名:是一个标识符,是一个地址常量,用以表示数组中打头元素的地址 8.2.1 一维数组的声明 例8.1 具有基本数据类型的一维数组的声明 #define SIZE 10 int array[5]; double d[5],e[SIZE]; char name[SIZE*5]; 错误例子 unsigned int size; char str[size],buffer[2*size]; 错误原因 数组的大小一经说明就不能改变 长度说明不是常量表达式,在编译之前就必须明确确定 8.2.1 一维数组的声明 例8.2 采用类型修饰符的一维数组的声明 static int y[10]; 数组y中的每一个成员都是静态整型成员 extern double s[2]; 作了一个外部双精度型数组的引用性声明 应该在另外的源文件中通过double s[2];来定义s数组,这样第2个声明语句才有意义 8.2.2 一维数组的使用 C提供的各种操作符 针对基本数据类型的变量 数组 是构造数据类型 但其元素是基本数据类型的变量 访问数组 不需设计专门的数组操作符 方法:数组名[下标表达式] 例int a[5], j=2; 5个元素依次是a[0],a[1],a[2],a[3],a[4] a[j+2] 、a[++j] 、a[j--]、a[5*j-7] 错误写法:a[j-3] 、a[2*j+1] 例8.3 使用一维数组计算学生的平均成绩。 #include 〞stdio.h〞 void main(void) { int score[30],i,sum=0; double average; printf(input the scores please:\n); for(i=0;i30;i++) scanf(“%d”,score[i]); /* 将键盘输入的成绩赋给各个数组元素 */ for(i=0;i30;i++) sum+=score[i]; /* 求学生成绩的累加和 */ average=sum/30.0; /* 计算平均成绩 */ printf(sum=%d\n,sum); printf(average=%lf\n,average); } 8.2.3 一维数组的初始化 显式初始化值的个数与说明长度相同 int x[5]={0,1,2,3,4}; int y[5]={0,1,2,3,4,5}; 错误:初值个数大于数组长度 有初始化值时,长度说明可缺省 数组长度由初值个数确定 int y[]={1,2,3,4,5,6,7,8}; 初始化值的个数可以小于说明长度,
您可能关注的文档
最近下载
- 中华人民共和国国歌-教案.doc VIP
- 2025年高考(全国一卷)数学试题和答案.docx VIP
- 离散数学答案(刘玉珍_编着).doc VIP
- 人民版六年级《劳动》上册全套教学课件.pptx
- 《城市规划原理》第3章 城乡规划体制.ppt VIP
- 基于SOR理论的社交网络互动对旅游行为的影响.docx VIP
- 哈曼JBL Live 770NC 无线罩耳式自适应降噪耳机 配置指南 (中国)说明书用户手册.pdf
- 《城市规划原理》第3章城乡规划体制.pptx
- 2025年最新的BRCGS包装材料全球标准第7版全套管理手册及程序文件.docx VIP
- 激光原理及应用陈家璧主编习题解答.pdf VIP
文档评论(0)