网站大量收购闲置独家精品文档,联系QQ:2885784924

《C语言程序设计项目化教程》课件第2章.ppt

《C语言程序设计项目化教程》课件第2章.ppt

  1. 1、本文档共313页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

程序运行结果如下:

Inputarraya:1357986420↙

Inputarrayb:5389-1-35604↙

a[i]b[i]4times

a[i]=b[i]1times

a[i]b[i]5times

Arrayaissmallerthenarrayb2.数组名作为函数的形参和实参

可以用数组名作为函数参数,此时实参与形参都应当用数组名。

【例2.23】有一个一维数组score,内放10个学生成绩,求平均成绩。

程序如下:

floataverage(floatarray[10])

{?inti;

floataver,sum=0;

for(i=0;i10;i++)sum=sum+array[i];

aver=sum/10;

return(aver);

}

#includestdio.h

voidmain()

{?floatscore[10],aver;

inti;

printf(Input10scores:);

for(i=0;i10;i++)

scanf(%f,score[i]);aver=average(score);

printf(Averagescoreis%6.2f\n,aver);

}

程序运行结果如下:

Input10scores:100567898.576879967.57597↙

Averagescoreis83.40说明:

(1)用数组名作函数参数,应该在主调函数和被调用函数中分别定义数组。如例2.23中array是形参数组名,score是实参数组名,分别在其所在函数中定义,不能只在一方定义。

(2)实参数组与形参数组类型应一致,如例2.23中都为float类型。如果类型不一致,结果将出错。

(3)实参数组和形参数组大小可以一致,也可以不一致。C编译系统对形参数组大小不做语法检查,只是将实参数组的首地址传递给形参数组。(4)形参数组也可以不指定大小,在定义形参数组时在数组名后面跟一对空的方括号。为了在被调用函数中处理数组元素的需要,可以另设一个参数传递数组元素的个数,如下例所示。

【例2.24】编写一个函数,求学生的平均成绩。

程序如下:

#includestdio.h

floataverage(floatarray[],intn)

{?inti;floataver,sum=0;

for(i=0;in;i++)

sum=sum+array[i];

aver=sum/n;

return(aver);

}

voidmain()

{?floatscore_1[5]={98.5,97,91.5,60,55};

floatscore_2[10]={67.5,89.5,99,69.5,77,89.5,76.5,54,60,99.5};printf(TheaverageofclassAis%6.2f\n,average(score_1,5));

printf(TheaverageofclassBis%6.2f\n,average(score_2,10));

}

程序运行结果如下:

TheaverageofclassAis80.40

TheaverageofclassBis78.20

从上例可以看出,两次调用average()函数时数组大小是不同的,在调用时用一个实参传递数组大小(传给形参n),以便在average()函数中对所有元素都访问到。(5)用数组名作函数实参时,不是把实参数组元素的值传递给形参数组元素,而是把实参数组的起始地址传递给形参数组,这样两个数组就共占同一段内存单元,如图2-24所示。假如例2.24中main()函数的实参数组score的起始地址为1000,调用average()函数时,将其起始地址1000传递给形参数组array,使得array的起始地址也成为1000。这样,score和array数组的起始地址相同,占同一段内存单元,score[0]与array[0]占同一个单元,score[1]与array[1]占同一个单元,依次类推。可以看出,形参数组

您可能关注的文档

文档评论(0)

酱酱 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档