- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c6_1数组1
第五章:数组 重点与要求: 掌握一维数组、二维数组和多维数组的定义、引用和初始化。熟悉其在内存中的存放方式。 掌握字符串数组的初始化、输入输出及在内存中的存放方式。 一、问题的引入: 例:输入10个学生的成绩,求平均成绩, 流程图见下页。 思考: 并将低于平均成绩的分数打印出来。 一维数组(1) 在实际中我们还会碰到一些成批出现的变量,比如数学中常用的向量和矩阵,数据处理中的表格等,这就需要把一组有序的变量或数据作为一个整体来处理。 数组定义:一组同类型数据组成的序列,用一个统一的数组名标识这一组数据,用下标指示数组中元素的序号。 一、一维数组 1、定义: 数据类型 数组名 [元素个数 ]; 如 char c [10]; long x[5]; float xy[100]; 2、初始化:在定义时给数组元素赋值 int a[4]={1, 3, 5}则a[0]=1,a[1]=3,a[2]=5,a[3]=0 int a[ ]={1, 3, 5}相当于 int a[3]={1,3, 5} 一维数组(2) 若定义静态数组而不初始化,其值为0或为空字符。 若定义自动数组而不初始化,其值为不可预料的数。 3、引用: 数组名 [下标] ; (举例说明) 注意:下标的起始值为0。 引用时下标值不要超出下标的范围 如:int a[3];则数组a总共有3个元素,引用时分别为a[0] a[1] a[2] 若引用a[4],编译时不指出“下标越界”的错误,而是把a[3]下面一个单元的内容作为a[4]引用,从而引起程序潜在的错误。 一维数组(3) 4、数组元素在内存中的存放位置: 数组经过定义以后,C编译系统就会安排一片连续的存储空间来依次存放数组的各个元素; 数组名是数组元素在内存中的起始位置,然后按顺序存放。 强调注意:数组名是一个地址常数,其值由机器装入程序时决定 如 int x[4]={3, -2, 1, 4, }; 低地址 3 -2 1 高地址 4 5、数组也可作为函数的参数 (1)数组元素作参数(按值传递)是单值传递 (2)数组名作参数(按址传递)是多值传递 一维数组应用举例 例L5-0:用数组求Fibonacci数列问题。 Main() {int I,f[20]={1,1}; for(I=2;I20;I++) f[I]=f[I-1]+f[I-2]; for(I=0;I20;I++) {if (I%5==0) printf(“\n”); printf(“%d\n”); } 一维数组应用举例 例l5_1.c 输入10个学生的成绩,求平均成绩,并将低于平均成绩的分数打印出来。 Main() { int i; float score[10],sum,avg; /*输入10个学生的分数*/ printf( “enter 10 student’s scores: \n”); for (i=0; i10; i++) scanf(“%f ” , score [i]); 一维数组应用举例 /*求出总分和均分*/ for (sum=0, i=0; i10; i++) sum = sum+score[i]; avg=sum/10; /*打印低于均分的人的分数*/ printf(“ The scores which are below the average : \n ”); for (j=0; j10; j++) if (score [j] avg) printf(“%8.2f ” , score [j]); } 一维数组应用举例 例l5_2.c 对n个数由小到大排序。 冒泡法:将相邻两个数A[0]和A[1]比较,按要求将这两个数排好序;再将A[1]和A[2]比较,???;直到将最后两个数比较并处理完毕。这时,最大的一个数已经换到最后一个位置。这是第一轮的比较和处理。每进行一轮,把剩下的数中最大的
原创力文档


文档评论(0)