14 一维数组1-一维数组做参数.pptVIP

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
14 一维数组1-一维数组做参数

《解析C程序设计》第2章 简单程序设计 14 一维数组-1 本讲重点 预习检查 例8.1-数组的定义及数组元素的引用 例8.5-向函数传递一维数组元素 更多练习 * 例 8.1 #include stdio.h #define N 5 int main() { int score[N]; int i,totalScore = 0; printf(Input the scores of ten students:\n); for (i=0; iN; i++) { scanf(%d, score[i]); totalScore = totalScore + score[i]; } printf(The average score is %f\n, totalScore/5.0); return 0; } * N个数据的内存分布是怎样的?数组名score有什么用途? 循环为什么从0开始?i最大到几? 下标溢出有什么提示? Q&A Q1:N个数据的内存分布是怎样的?数组名score有什么用途? A1:N个数据连续存放,找到第1个就找到后续的N-1个。score是score[0] 的地址,即数组的首地址。 * Q&A Q2:i为什么从0开始?i最大到几? A2:因为首地址+0就找到第1个元素score[0],所以,下标从0开始,也因此,最大是N-1。 Q3:下标溢出有什么提示? A3:在CB里没提示,因此需要自己注意。在VC里编译的时候也没有提示,但在运行时会出现“内存读取错误”之类的提示 * 涉及的语法 -数组的相关概念及定义方法 数组:一组具有类型相同、顺序存放的数据 数组定义格式: 数据类型 数组名[数组长度N]; 注:数组长度N必须是常量。 数据定义的目的就是一次分配连续的N块内存(每块内存有多少字节由数据类型确定),可以用于存储N个同类型的数据。 例:int score[5];//方括号里括的是长度,即个数 * 涉及的语法 -数组名的重要意义 数组名表示连续的N块内存的起始地址(首地址)。 有了数组名(首地址)就可以找到数组中的每一个数据。 把数组名做参数传给另一个函数,则另一个函数也可以找到这个数组。 * 涉及的语法 -数组元素的概念及引用方法 数据中的每个数据称为数组元素 不同的数组元素用不同的下标来区分。 假设有int score[30];那么30个数组元素就分别是score[0],score[1],…score[29]。注意,此时,方括号里的数字不再表示长度,而是下标。 * 练习1: 例:输入全班30个学生的C语言成绩并统计不及格的人数。 分析: 定义数组 输入30个成绩 统计不及格人数 输出统计结果 * 完整程序 #define N 30 void main() {int score[N]; int i=0,counter=0; for ( ;iN;i++) /*输入*/ { scanf(%d,score[i]); if(score[i]60) /*统计*/ counter++; } printf(“The number of unpassed students:%d”,counter); } * 小结1 数组及数组元素的概念 数组定义的方法(int score [N];) 数组元素的引用方法(score [i]) * 例8.5简化版 #include stdio.h #define N 4 int Average(int a[], int n); /* Average()函数原型 */ int main() { int score[N]={70,80,90,95} ,aver; //数组初始化 aver = Average(score, N); //数组名作为函数实参 printf(Average =%d\n,aver); return 0; } /* 函数功能: 计算n个数组元素的平均值 */ int Average(int a[], int n) { int i, sum = 0; for (i=0; in; i++) { sum += a[i]; } return sum / n; } * Q:score[i]与a[i]有什么关系? A:是同一个数组元素。 涉及的语法 -数组作函数参数 形参看似是一个数组,其实,只是一个变量,存储这个数组的首地址 实参是主函数中的数组名,因此,传过来的就是数组首地址,只复制一个地址自然比拷贝全部数据效率高。 因为形参和实参都是同一处地址,所以,通过实参score找到的score[i]与通过形参a找到的a[i]实际上是同

文档评论(0)

kfcel5460 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档