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

article/2025/6/16 2:00:44

山不在高,有仙则名。水不在深,有龙则灵。 ----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.hkcw.cn/article/GsnQEMbCmF.shtml

相关文章

基于Android的一周穿搭APP的设计与实现 _springboot+vue

开发语言:Java框架:springboot AndroidJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7数据库工具:Navicat12开发软件:eclipse/myeclipse/ideaMaven包:Maven3.6 系统展示 APP登录 A…

【开源工具】超全Emoji工具箱开发实战:Python+PyQt5打造跨平台表情管理神器

🌟 超全Emoji工具箱开发实战:PythonPyQt5打造跨平台表情管理神器 🌈 个人主页:创客白泽 - CSDN博客 🔥 系列专栏:🐍《Python开源项目实战》 💡 热爱不止于代码,热情源自每…

当 “欧洲版 Cursor” 遇上安全危机

在 AI 编程助手蓬勃发展的当下,安全问题正成为行业不容忽视的隐忧。近期,AI 编程助手公司 Replit 与号称 “欧洲版 Cursor” 的 Lovable 之间,因安全漏洞问题掀起了一场风波,引发了业界的广泛关注。​ Replit 的员工 Matt Palmer…

Agentic Workflow是什么?Agentic Workflow会成为下一个AI风口吗?

无论是想要学习人工智能当做主业营收,还是像我一样作为开发工程师但依然要运用这个颠覆开发的时代宠儿,都有必要了解、学习一下人工智能。 近期发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,入行门槛低&#x…

遥感影像建筑物变化检测

文章目录 效果1、环境安装2、项目下载3、数据集下载4、模型训练5、模型推理6、推理结果7、批量推理效果 1、环境安装 参考文章 搭建Pytorch的GPU环境超详细 win10安装3DGS环境(GPU)超详细 测试GPU环境可用 2、项目下载 https://gitcode.com/gh_mirrors/ch/change_detectio…

vue+cesium示例:地形开挖(附源码下载)

基于cesium和vue绘制多边形实现地形开挖效果,适合学习Cesium与前端框架结合开发3D可视化项目。 demo源码运行环境以及配置 运行环境:依赖Node安装环境,demo本地Node版本:推荐v18。 运行工具:vscode或者其他工具。 配置方式&#x…

Ubuntu 系统部署 MySQL 入门篇

一、安装 MySQL 1.1 更新软件包 在终端中执行以下命令,更新系统软件包列表,确保安装的是最新版本的软件: sudo apt update 1.2 安装 MySQL 执行以下命令安装 MySQL 服务端: sudo apt install mysql-server 在安装过程中&…

机器学习——主成分分析PCA

主成分分析—PCA 一、主成分分析简介1. PCA概述2. 降维 & PCA3. PCA的优缺点 二、PCA的数学基础1. 方差2. 协方差矩阵3. 特征值和特征向量 三、PCA的算法流程1. 标准化数据2. 计算协方差矩阵3.计算特征值和特征向量4. 选择主成分5. 数据投影 四、代码分析(人脸识…

连接关键点:使用 ES|QL 联接实现更丰富的可观测性洞察

作者:来自 Elastic Luca Wintergerst ES|QL 的 LOOKUP JOIN 现已进入技术预览阶段,它允许你在查询时对日志、指标和追踪进行丰富处理,无需在摄取时进行非规范化。动态添加部署、基础设施或业务上下文,减少存储占用,加速…

专家:乌军“蛛网”行动影响深远 无人机开启新战局

乌克兰在大规模使用无人机发动特种攻击方面再次震惊了世界。6月1日,乌克兰国家安全局对俄罗斯境内多地的军用机场发动大规模无人机攻击,声称摧毁了“多达41架战略轰炸机”。俄罗斯方面承认乌军无人机成功袭击的事实,但表示损失没有那么大。西方媒体认为,乌方使用的这种无人…

西北华北华南大片区域高温来袭 多地将迎35℃以上高温

今明两天(6月3日至4日),我国降雨主要出现在云南和华南沿海、东北地区等地,局地还可能伴有强对流天气。随着高压脊东移,北方大部气温逐渐升高,华北、黄淮等地高温天气将发展增多,南方多地5日起也将加入高温行列。昨天,冷空气南下导致南方强降雨区域南压至华南和云南一带…

美拆解首艘核动力航母要花多少钱 5亿多美元启动拆解

美国《星条旗报》网站报道,世界上第一艘核动力航母“企业”号将在亚拉巴马州拆解。佛蒙特州的一家公司获得了超过5亿美元的资金,用于拆除停放在亚拉巴马州莫比尔市的这艘历史悠久的航母。五角大楼发布的采购公告显示,位于佛蒙特州弗农的北极星海事拆卸服务有限责任公司获得了…

基于AI的6个学术搜索工具推荐:功能特点与适用场景分析

和传统的学术搜索平台pubmed、google scholar相比,AI驱动的学术搜索引擎不再依赖简单的关键词匹配,而是通过理解用户意图和语境,实现更精准、更具上下文关联的检索结果,并能够将搜索内容总结为完整答案。 除了Perplexity和秘塔AI搜…

scrapy练习笔记

scrapy练习 文章目录 scrapy练习一、scrapy安装二、scrapy基本流程2.1 学习目标2.2 创建一个新项目2.3 创建Item2.4 解析 Response2.5 使用 Item2.6 开始爬取 三、爬取多页3.1 练习3.2 输出格式3.3 使用 Item Pipeline 暂时到这 一、scrapy安装 官网:https://www.s…

cmake学习1

基本起点 本笔记的主要参考文献是cmake文档,对文档的二次提炼和补充学习。 1. cmake_minimum_required() 任何项目的最顶层CMakeLists.txt都必须首先使用 cmake_minimum_required() 命令指定最低 CMake 版本。这建立策略设置并确保以下 CMake 函数以兼容的 CMake…

基与OpenCV实现单目相机实时追踪对物体的测量算法(Android版)

本人原创转载请注明出处 前言 本算法是基于摄像头到测量物体的已知距离和摄像头像素焦距的前提下测量物体的宽高,并根据参照物的实际尺寸测量其他物体。 效果图 准备环境 1.首先硬件你要有一个摄像头,最好是USB即插即用免驱的 2.我使用的是12寸的安…

【计算机视觉】单目深度估计模型-Depth Anything-V2

概述 本篇将简单介绍Depth Anything V2单目深度估计模型,该模型旨在解决现有的深度估计模型在处理复杂场景、透明或反射物体时的性能限制。与前一代模型相比,V2版本通过采用合成图像训练、增加教师模型容量,并利用大规模伪标签现实数据进行学…

常见离线语音识别模块功能说明——天问ASR;机芯智能;海凌科;轻语音

本文章从开发方式及功能等方面上进行说明,便于开发者进行选择与开发。 本文章依据截至2024年8月1日各网站资料进行整理编写。 总结: 开发方式上: 天文ASR 有着最灵活的开发方式,可完全按照程序员意愿进行开发,同时有…

Whisper.cpp + GPU 加速全攻略:Mac M 芯片高效转录音频教程

内容预告 本文将手把手教你如何利用 GPU 加速,在 Mac M 芯片上使用 Whisper 进行音频转文字,大幅提升转录效率。 本教程涵盖: Whisper.cpp 简介:为什么它适用于本地语音转写?Mac M 芯片的 GPU 加速:如何…