当前位置: 首页 > news >正文

【时时三省】(C语言基础)数组作为函数参数

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省

调用有参函数时,需要提供实参。例如sin ( x ),sqrt ( 2,0 ),max ( a,b )等。实参可以是常量、变量或表达式。数组元素的作用与变量相当,一般来说,凡是变量可以出现的地方,都可以用数组元素代替。因此,数组元素也可以用作函数实参,其用法与变量相同,向形参传递数组元素的值。此外,数组名也可以作实参和形参,传递的是数组第一个元素的地址。

数组元素作为函数实参

数组元素可以用作函数实参,但是不能用作形参。因为形参是在函数被调用时临时分配存储单元的,不可能为一个数组元素单独分配存储单元(数组是一个整体,在内存中占连续的一段存储单元)。在用数组元素作函数实参时,把实参的值传给形参,是“值传递”方式。数据传递的方向是从实参传到形参,单向传递。

例题:

输入10个数,要求输出其中值最大的元素和该数是第几个数。

解题思路:

可以定义一个数组a,长度为10,用来存放10个数。设计一个函数max,用来求两个数中的大者。在主函数中定义一个变量m,m的初值为a [ 0 ],每次调用max函数后的返回值存放在m中。用“打擂台”算法,依次将数组元素a [ 1 ] ~ a [ 9 ]与m比较,最后得到的m值就是10个数中的最大者。

编写程序:

运行结果: 

程序分析: 

从键盘输入10个数给a[0] ~ a [9]。变量m用来存放当前已比较过的各数中的最大者。开始时设m的值为a[0]。然后将m与a [ 1 ]比,如果a [ 1 ]大于m,就以a [ 1 ]的值(此时也就是max(m,a [ 1 ])的值)取代m的原值。下一次以m的新值与a [ 2 ]比较,max ( m,a [ 2 ] )的值是a [ o ],a [ 1 ],a [ 2 ]中最大者,其余类推。经过9轮循环的比较,m最后的值就是10个数的最大数。

请注意分析怎样得到最大数是10个数中第几个数。当每次出现以max ( m,a [ i ] )的值取代m的原值时,就把i的值保存在变量n中。n最后的值就是最大数的序号(注意序号从0开始),如果要输出“最大数是10个数中第几个数”,应为n+1。例如n =6时表示数组元素a6是最大数,由于序号从0开始,因此它是10数中第7个数,故应输出的是n+1。

当然,本题可以不用max函数求两个数中的大数,而在主函数中直接用if ( m > a[i] )来判断和处理。

相关文章:

  • js-day7
  • ssm学习笔记day04
  • 基于蝙蝠算法的路径优化
  • 【免费】2004-2020年各省电力消费量数据
  • 二叉树(二)
  • day20 奇异值SVD分解
  • Python训练营打卡Day43
  • lanqiaoOJ 1508:N皇后问题 ← dfs
  • pcie 日常问答-20250528
  • 域自适应 (Domain Adaptation,DA)基础
  • Qt开发:QThreadPool的介绍和使用
  • 多模态大模型中的Projector模块深度解析
  • 5月底 端午节
  • 红黑树与红黑树的插入——用C++实现
  • 查询去重使用 DISTINCT 的性能分析
  • 图神经网络原理及应用简介
  • VS2022下C++ Boost库安装与使用使用
  • 血管的三维重建
  • 【Java】mybatis-plus乐观锁与Spring重试机制
  • 【Typst】5.文档结构元素与函数
  • 织梦网站关闭手机版/免费生成短链接
  • 自助建站营销招商/国外网站seo免费
  • 国外网站设计模板/辽宁网站建设
  • 青岛的网站建设公司/网络营销形式
  • 学校校园网站建设实施方案/平台推广策略都有哪些
  • 网站友情链接 关键词经常改动/游戏推广员每天做什么