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

【时时三省】(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] )来判断和处理。

http://www.xdnf.cn/news/10879.html

相关文章:

  • 解决Vditor加载Markdown网页很慢的问题(Vite+JS+Vditor)
  • 二分查找和二分答案(基础)
  • C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
  • 【Doris基础】Apache Doris中的Fragment概念详解
  • 探索NautilusTrader:下一代开源算法交易平台的革命性突破
  • 智能光子系统的多任务优化---案例:基于双贝塞尔曲线的紧凑多模光学波导弯曲
  • Dify:启动 Web 服务的详细指南
  • 爱耕云课时管理系统评测
  • SpringBoot项目打包成war包
  • Linux文件系统:从VFS到Ext4的奇幻之旅
  • Linux中断与异常:内核的事件驱动引擎
  • C++初赛的三讲
  • 【MSCKF】UpdaterSLAM::delayed_init 和 FeatureInitializer::single_triangulation
  • 安全编码规范与标准:对比与分析及应用案例
  • Python(十五)
  • 云服务器宕机或重启后数据会丢失吗?
  • 公司存储文件用什么比较好?
  • 笔记:算法题目中需要处理 int 某个位的三种方法:for、while、to_string
  • 免费开源Umi-OCR,离线使用,批量精准!
  • Qt企业级串口通信实战:高效稳定的工业级应用开发指南
  • leetcode hot100(两数之和、字母异位词分组、最长连续序列)
  • PyTorch--池化层(4)
  • Win11系统不推送24H2/西数SSD无法安装24H2 - 解决方案
  • C++:内存管理
  • Baklib内容中台AI重构智能服务
  • STM32与GD32标准外设库深度对比
  • AI 驱动的案例分流:几分钟内构建并部署
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Account Kit(5)
  • C# Onnx 动漫人物人脸检测
  • 英福康INFICON VGC501, VGC502, VGC503 单通道、双通道和三通道测量装置