【時時三省】(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.pswp.cn/diannao/85609.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/85609.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/85609.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

硬件工程師筆記——555定時器應用Multisim電路仿真實驗匯總

目錄 一 555定時器基礎知識 二、引腳功能 三、工作模式 1. 單穩態模式: 2. 雙穩態模式(需要外部電路輔助): 3. 無穩態模式(多諧振蕩器): 4. 可控脈沖寬度調制(PWM&#xff09…

C++11特性:enum class(強枚舉類型)詳解

C11引入的 enum class(強枚舉類型)解決了傳統枚舉的多個問題: 防止枚舉值泄漏到外部作用域;禁止不同枚舉間的隱式轉換;允許指定底層數據類型優化內存;避免命名空間污染。 其基本語法為 enum class Name{.…

【QT】QString 與QString區別

在C中,QString 和 QString& 有本質區別,尤其是在參數傳遞和內存管理方面: 1. QString(按值傳遞) 創建副本:傳遞時會創建完整的字符串副本內存開銷:可能涉及深拷貝(特別是大字符…

提升四級閱讀速度方法

以下是針對四級英語閱讀速度提升的系統性解決方案,結合最新考試規律和高效訓練方法,分五個核心模塊整理: 🚀 ??一、基礎提速訓練(消除生理障礙)?? ??擴大視幅范圍?? 從逐詞閱讀升級為 ??意群閱讀…

6.4 note

構造矩陣 class Solution { private: vector<int> empty {}; // 返回每個數字(-1)所在的序號&#xff0c;可以是行或列, 如果為空則無效 vector<int> topoSort(int k, vector<vector<int>>& conditions) { // 構建一個圖…

SCSS 全面深度解析

一、SCSS 入門指南&#xff1a;為你的 CSS 工作流注入超能力 在現代 Web 開發中&#xff0c;樣式表的復雜性和維護成本日益增加。為了應對這一挑戰&#xff0c;CSS 預處理器應運而生&#xff0c;而 SCSS (Sassy CSS) 正是其中最流行、最強大的工具之一。本指南將帶你深入了解 …

R1-Searcher++新突破!強化學習如何賦能大模型動態知識獲取?

R1-Searcher新突破&#xff01;強化學習如何賦能大模型動態知識獲取&#xff1f; 大語言模型&#xff08;LLM&#xff09;雖強大卻易因靜態知識產生幻覺&#xff0c;檢索增強生成&#xff08;RAG&#xff09;技術成破局關鍵。本文將解讀R1-Searcher框架&#xff0c;看其如何通…

圖神經網絡原理及應用簡介

圖神經網絡&#xff08;Graph Neural Networks, GNNs&#xff09;原理及應用 1. 圖神經網絡的基本概念 圖神經網絡是一種專門用于處理圖結構數據的深度學習模型。圖&#xff08;Graph&#xff09;由節點&#xff08;Node&#xff09;和邊&#xff08;Edge&#xff09;組成&…

Unity 限制物體在Bounds 包圍盒控制移動

我列舉兩種方式&#xff0c;其實最終都是涉及到包圍盒使用問題。可以通過 Box Collider 的 bounds 屬性來獲取物體的包圍盒&#xff08;Bounds&#xff09;也可以直接設置Bounds包圍盒使用&#xff0c;從而限制其移動范圍。不過需要注意&#xff0c;直接使用 Box Collider 的 s…

SpringBoot中緩存@Cacheable出錯

SpringBoot中使用Cacheable: 錯誤代碼&#xff1a; Cacheable(value "FrontAdvertiseVOList", keyGenerator "cacheKey") Override public List<FrontAdvertiseVO> getFrontAdvertiseVOList(Integer count) {return this.list(Wrappers.<Adve…

位集合(STL bitset)簡介

【bitset 官方網址】 https://cplusplus.com/reference/bitset/bitset/ 位集合&#xff08;Bit Set&#xff09;是一種高效存儲和操作布爾值&#xff08;true/false&#xff09;或二進制位&#xff08;0/1&#xff09;的數據結構&#xff0c;主要用于處理大規模整數集合或狀態標…

基于SDN環境下的DDoS異常攻擊的檢測與緩解

參考以下兩篇博客&#xff0c;最后成功&#xff1a; 基于SDN的DDoS攻擊檢測和防御方法_基于sdn的ddos攻擊檢測與防御-CSDN博客 利用mininet模擬SDN架構并進行DDoS攻擊與防御模擬&#xff08;Ryumininetsflowpostman&#xff09;_mininet模擬dos攻擊-CSDN博客 需求 H2 模擬f…

責任鏈模式:構建靈活可擴展的請求處理體系(Java 實現詳解)

一、責任鏈模式核心概念解析 &#xff08;一&#xff09;模式定義與本質 責任鏈模式&#xff08;Chain of Responsibility Pattern&#xff09;是一種行為型設計模式&#xff0c;其核心思想是將多個處理者對象連成一條鏈&#xff0c;并沿著這條鏈傳遞請求&#xff0c;直到有某…

如何進行頁面前端監控

&#x1f9d1;?&#x1f4bb; 寫在開頭 點贊 收藏 學會&#x1f923;&#x1f923;&#x1f923; 前端監控主要分三個方向 前端性能&#xff08;用戶體驗優化&#xff09; 異常監控 業務指標跟 下面我來分別介紹三類指標如何獲取 1&#xff09;前端性能指標&#xff1a; …

Ajax技術分析方法全解:從基礎到企業級實踐(2025最新版)

引言 Ajax技術自2005年正式命名以來,已支撐全球83%的Web應用實現異步交互。2025年最新數據顯示,單頁面應用(SPA)的Ajax請求密度已達日均120億次/應用。本文將系統化解析Ajax分析方法論,涵蓋從基礎原理到企業級工程實踐的完整技術棧。 一、Ajax技術架構解構 1.1 核心組件…

git管理github上的repository

1. 首先注冊github并創建一個倉庫&#xff0c;這個很簡單&#xff0c;網上教程也很多&#xff0c;就不展開說了 2. 安裝git&#xff0c;這個也很簡單&#xff0c;不過這里有個問題就是你當前windows的用戶名即&#xff1a;C/Users/xxx 這個路徑不要有中文&#xff0c;因為git …

Windows 下部署 SUNA 項目:虛擬環境嘗試與最終方案

#工作記錄 #回顧總結 本文記錄了在 Windows 系統上&#xff0c;通過 PyCharm 圖形界面&#xff08;盡量減少命令行操作&#xff09;部署 SUNA 項目時&#xff0c;針對不同虛擬環境方案的嘗試過程、遇到的問題以及最終選擇的可行方案&#xff0c;并補充了整體部署思路與推薦。…

無向圖的點、邊雙連通分量

文章目錄 點雙連通分量邊雙連通分量 有向圖的強連通分量&#xff1a;寒假學習筆記【匠心制作&#xff0c;圖文并茂】——1.20拓撲、強連通分量、縮點 點雙連通分量 在這之前&#xff0c;先讓我們了解幾個概念。 割點&#xff1a;刪除一個點和其連出的邊后&#xff0c;原圖會…

第六十二節:深度學習-加載 TensorFlow/PyTorch/Caffe 模型

在計算機視覺領域,OpenCV的DNN(深度神經網絡)模塊正逐漸成為輕量級模型部署的利器。本文將深入探討如何利用OpenCV加載和運行三大主流框架(TensorFlow、PyTorch、Caffe)訓練的模型,并提供完整的代碼實現和優化技巧。 一、OpenCV DNN模塊的核心優勢 OpenCV的DNN模塊自3.3…

Spring @Autowired自動裝配的實現機制

Spring Autowired自動裝配的實現機制 Autowired 注解實現原理詳解一、Autowired 注解定義二、Qualifier 注解輔助指定 Bean 名稱三、BeanFactory&#xff1a;按類型獲取 Bean四、注入邏輯實現五、小結 源碼見&#xff1a;mini-spring Autowired 注解實現原理詳解 Autowired 的…