第2版电子课件office2003版C语言第2版第7章数组2003版.pptVIP

第2版电子课件office2003版C语言第2版第7章数组2003版.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
定义数组注意事项 数组名的组成规则和变量名相同,必须按照标识符的命名规则。 数组名后面是用方括号将常量表达式括起来,不能使用圆括号。 方括号内的常量表达式表示数组元素的总个数,也就是数组的长度。在使用中,数组元素的序号(即下标)从0开始,最大值为“常量表达式?1”。 定义数组注意事项2 方括号内的常量表达式中可以包括字面常量和符号常量,但不能包含变量。换句话说,C语言中不允许对数组的长度作动态的定义。例如下面的数组定义过程都是错误的: int n=10; 或 int n; int a[n]; scanf(%d,n); int a[n]; 数组的初始化规则 (1)当对数组中全体元素赋初值时,可以不必指明数组中元素的个数。例如:int a[]={1,2,3,4,5}; 虽然在定义时没有指明a数组的长度,但在编译时会根据花括弧中的初值个数确定数组的实际长度,即a数组包含5个元素。 (2)在定义数组时也可以只对一部分元素赋值。例如: int a[5]={1,2,3}; 定义并初始化一个含有5元素的数组,但只给前3个元素赋了初值,因此,后2个元素(a[3],a[4])的初值自动默认为零。当数组长度与初值数据个数不相等时,在定义数组时不能省略(不指定)数组长度。例如:int a[]={1,3,5}; 编译系统会认定a数组只有3个元素而不是5个元素。 【例6.3】有30个人围成一圈,从1开始报数,报到5的人出列。后面的人继续从1开始报数,如此反复,直到所有的人都出列,编程给出出列的顺序。 问题分析:首先,设人数为M人,设数到N的人出列。用数组a[M]存放M个人是否还在圈中的信息。其中,a[i]=1 表示第i个人还在圈中,a[i]=0表示第i个人已出列。 开始时,数组a中所有的元素都是1,表示每个人都站在圈中。用k=k+a[i]来实现报数功能,因为只有还在圈中的人才能使K的值增加。 用变量d来记录出圈的人数,当d=M时,表示所有的人都出圈了。 程序清单如下: #define M 30 #define N 5 void main() { int a[M+1],i,k=0,d=0; for(i=1;i=M;i++)a[i]=1; /*设每个人都在圈中*/ do{ for(i=1;i=M;i++) /*反复在数组a中循环报数*/ { k=k+a[i]; /*实现报数*/ if(k!=N) continue; printf(d=%d %d is out;,d,i);/*对报数到N时的处理*/ a[i]=0;k=0;d=d+1; } }while(d!=M); } 数组必须“先定义,后引用”。二维数组定义后,引用二维数组元素的一般形式为: 数组名[行下标][列下标] 例如,a[0][2],表示引用二维数组a中第0行2列的元素。 引用二维数组元素时应注意以下几个问题: (1)引用二维数组时,每个下标都分别用方括号括起来,不要写成a[0,2]形式。 (2)下标可以是任何整型表达式。 (3)引用数组元素时务必注意,数组每一维的下标都不应 超过定义时的范围(即不要超过上下界)。例如,对于已经定义为“int a[2][3];”的二维数组来说,要想引用元素a[2][3]是错误的。虽然这种引用不会出现编译错误,但它代表的是不在数组a中的某一元素,它是代表数组a以外的某一个存储单元。 如果在定义数组时,给出了全部数组元素的初值,则数组的第一维下标可以省略。例如,下面两种定义方式是等价的: int i[2][3]={1,2,3,4,5,6}; int i[ ][3]={1,2,3,4,5,6}; 但不能写成: int i[2][ ]={1,2,3,4,5,6}; 在进行分行初始化时,由于给出的初值已清楚地表明了行数和各行中元素的值,尽管此时并没有给出全部数组元素的初值,数组的第一维下标仍允许省略。例如: int i[][3]={{1},{5,2},{3,2,1}}; 显然这是一个3行3列的数组,其各元素的值如下: i[0][0]=1 i[0][1]=0 i[0][2]=0 i[1][0]=5 i[1][1]=2 i[1][2]=0 i[2][0]=3 i[2][1]=2 i[2][2]

文档评论(0)

精品课件 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档