版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、5.3 函数调用与参数传递,5.3.3 数组参数 一维数组参数 例5-5 一维数组参数。 程序代码如下: #include void get_array(int a); /*声明函数原型*/ void print_array(int a); /*声明函数原型*/ void main() int x10; get_array(x); /*调用函数*/ print_array(x); /*调用函数*/ void get_array(int a) /*定义函数实现输入数组元素功能*/ int i; for(i=0;i10;i+) scanf(%d, ,5.3 函数调用与参数传递,void print
2、_array(int a) /*定义函数实现输出数组元素功能*/ int i; for(i=0;i10;i+) if(i % 5=0)printf(n); printf(%d,ai); 程序运行时输入1至10,则程序输出如下: 1 2 3 4 5 6 7 8 9 10 一维数组参数的定义和使用原则 一维形参数组的定义形式为:类型名 形参数组名,不用指定元素个数,但一对方括号不可缺少,否则无法说明该参数为一数组。 调用使用数组参数的函数时,与形参数组对应的实参是一个同类型的数组名,不需要指定元素个数,也不需要加上方括号。,5.3 函数调用与参数传递,一维数组参数 数组参数传递 在函数中对形参数组
3、所做改变,将被保存在形参数组所对应的存储空间中,这也就间接改变了实参数组,因为它们对应同样的存储空间。当函数调用结束后,形参数组不再对应任何存储空间,形参数组也就没有具体的元素了。但是,实参数组仍然对应原来的存储空间,而存储空间中改变后的值就是实参数组新的元素值。 通常情况下,数组做函数参数,需要再定义一个整型形参,用于传递数组元素个数的信息。,5.3 函数调用与参数传递,例5-6 编写一个实现字符串倒置的函数,例如,原字符串为“ABCD”,倒置后变为“DCBA”。 程序代码如下: #include #include void trans(char s,int n); /*声明函数原型*/ v
4、oid main() char x50; int n; gets(x); n=strlen(x); puts(Before:); puts(x); putchar(n); trans(x,n); /*调用函数*/ puts(After:); puts(x); putchar(n); ,5.3 函数调用与参数传递,void trans(char s,int n) /*定义函数*/ int i; char c; for(i=0;in/2;i+) c=si; si=sn-i-1; sn-i-1=c; ,5.3 函数调用与参数传递,多维数组参数 多维形参数组的定义形式为:类型名 形参数组名数值数值,即
5、除了最左边的方括号可能留空外,其余都要填写数值。 调用使用多维数组参数的函数时,与形参数组对应的实参是一个同类型的数组名,也不需要加上任何方括号。 例5-7 编写一个函数用于查找并返回34的矩阵中的最大元素。 程序代码如下: #include int max_value(int a4,int n); /*声明函数原型*/ void main() int x34; int m,i,j; for(i=0;i3;i+) for(j=0;j4;j+) scanf(%d,5.3 函数调用与参数传递,for(i=0;i3;i+) for(j=0;j4;j+) printf(%d,xij); printf(
6、n); m=max_value(x,3); /*调用函数*/ printf(nThe max value is %dn,m); int max_value(int a4,int n) /*定义函数*/ int m,i,j; m=a00; for(i=0;in;i+) for(j=0;j4;j+) if(maij)m=aij; return(m); ,5.5 程序应用举例,例5-17 编程处理一批数据,要求: (1)随机产生20个10,99范围内的整数; (2)以每行5个数据的形式输出这批整数; (3)对这批数据进行升序排列,并输出排序后的结果; (4)计算这批数据的平均值; (5)分别统计大于
7、、等于和小于平均值的数据个数。 分别设计5个函数进行数据的随机生成、输出、排序、计算平均值和统计。 #include #include void getdata(int a,int n); /*随机生成数据函数的原型声明*/ void printdata(int a,int n); /*输出数据函数原型声明*/ void sort(int a,int n); /*排序函数原型声明*/ float average(int a,int n); /*求平均值函数原型声明*/ void count(int a,int n,float x,int b); /*统计函数原型声明*/,5.5 程序应用举例,
8、void main() int a20,b3; float x; getdata(a,20); printf(nInitialize:n); printdata(a,20); sort(a,20); printf(nSort:n); printdata(a,20); x=average(a,20); printf(nAverage:%fn,x); count(a,20,x,b); printf(n = :n); printdata(b,3); ,5.5 程序应用举例,void getdata(int a,int n) int i; randomize(); for(i=0;in;i+) ai=
9、random(90)+10; /*random(90)返回0N的随机整整*/ void printdata(int a,int n) int i; for(i=0;in;i+) if(i%5=0)printf(n); printf(%d ,ai); ,5.5 程序应用举例,void sort(int a,int n) int i,j,k,t; for(i=0;iaj)k=j; t=ai; ai=ak; ak=t; ,5.5 程序应用举例,float average(int a,int n) float s; int i; s=0.0; for(i=0;ix)b0+; else if(ai=x)
10、 b1+; else b2+; ,数组参数 一维数组参数 例 一维数组参数。 程序代码如下: #include void get_array(int a); /*声明函数原型*/ void print_array(int a); /*声明函数原型*/ void main() int x10; get_array(x); /*调用函数*/ print_array(x); /*调用函数*/ void get_array(int a) /*定义函数实现输入数组元素功能*/ int i; for(i=0;i10;i+) scanf(%d, ,void print_array(int a) /*定义函数
11、实现输出数组元素功能*/ int i; for(i=0;i10;i+) if(i % 5=0)printf(n); printf(%d,ai); 程序运行时输入1至10,则程序输出如下: 1 2 3 4 5 6 7 8 9 10 一维数组参数的定义和使用原则 一维形参数组的定义形式为:类型名 形参数组名,不用指定元素个数,但一对方括号不可缺少,否则无法说明该参数为一数组。 调用使用数组参数的函数时,与形参数组对应的实参是一个同类型的数组名,不需要指定元素个数,也不需要加上方括号。,一维数组参数 数组参数传递 在函数中对形参数组所做改变,将被保存在形参数组所对应的存储空间中,这也就间接改变了实参
12、数组,因为它们对应同样的存储空间。当函数调用结束后,形参数组不再对应任何存储空间,形参数组也就没有具体的元素了。但是,实参数组仍然对应原来的存储空间,而存储空间中改变后的值就是实参数组新的元素值。 通常情况下,数组做函数参数,需要再定义一个整型形参,用于传递数组元素个数的信息。,例编写一个实现字符串倒置的函数,例如,原字符串为“ABCD”,倒置后变为“DCBA”。程序代码如下: #include #include void trans(char s,int n);/*声明函数原型*/ void main() char x50; int n; gets(x); n=strlen(x); puts
13、(Before:); puts(x); putchar(n); trans(x,n); /*调用函数*/ puts(After:); puts(x); putchar(n); ,void trans(char s,int n) /*定义函数*/ int i; char c; for(i=0;in/2;i+) c=si; si=sn-i-1; sn-i-1=c; ,多维数组参数 多维形参数组的定义形式为:类型名 形参数组名数值数值,即除了最左边的方括号可能留空外,其余都要填写数值。 调用使用多维数组参数的函数时,与形参数组对应的实参是一个同类型的数组名,也不需要加上任何方括号。 例 编写一个函数用于查找并返回34的矩阵中的最大元素。 程序代码如下: #include int max_value(int a4,int n);/*声明函数原型*/ void main() int x34; int m,i,j; for(i=0;i3;i+) for(j=0;j4;j+) scanf(%d,for(i=0;i3;i+) f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026安永面试题库及答案
- 工程机械租赁业务员班组评比竞赛考核试卷含答案
- 2-7.项目二-人工智能+智慧生活:智能语音客服-任务三 智能语音客服
- 非银行金融行业A股上市保险2026年一季报综述:价值持续兑现业绩分化加剧
- 钛冶炼工安全应急知识考核试卷含答案
- 金属炊具及器皿制作工诚信品质知识考核试卷含答案
- 2026安全工作面试题及答案
- 公路水运工程试验检测员安全宣贯竞赛考核试卷含答案
- 硬质合金烧结工安全生产基础知识能力考核试卷含答案
- 图书馆服务员操作规程考核试卷含答案
- 2026届深圳二模数学试题+答案
- DR体位操作技术规范与临床应用
- 禁烧秸秆班会课件
- 口腔扁平苔藓病例汇报
- 小班语言《自己的事情自己做》课件
- 2025年河北省高考招生统一考试高考真题政治试卷(真题+答案)
- 钢铁冶金企业设计防火标准
- 2025年高级卫生专业技术资格考试超声医学(036)(副高级)试题及解答参考
- 2024年西藏初中学业水平考试数学卷试题真题(含答案详解)
- SH∕T 3097-2017 石油化工静电接地设计规范
- 新疆维吾尔自治区新疆生产建设兵团二中2025届高一数学第二学期期末联考试题含解析
评论
0/150
提交评论