- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
指标与阵列-东海大学
陣列 東海大學物理系?資訊教育 施奇廷 使用陣列的時機: 在科學運算中,我們經常要處理大量性質相同的資料,如果逐一宣告處理會,程式的編寫與維護都很麻煩。利用陣列變數處理這些資料,將會方便許多。 程式中有大量性質相同的資料,若逐一命名、宣告資料型態十分不便。 這些資料值在程式中被使用不止一次 經常需要使用多個這些資料 程式中要用到 10 個學號, 就要宣告 10 個變數來儲存: C 語言提供了一種特殊的資料結構:陣列 (Array)。宣告一個陣列, 可以取代宣告多個變數, 讓程式更容易撰寫和閱讀。像上述 10 個學號的例子, 改用陣列的語法來撰寫會方便許多, 如下: 陣列的意義 陣列可說是一組同型別與同性質變數的集合, 一個陣列等於一串連續的變數 當我們宣告一個陣列時, 就等於宣告了多個變數 我們可以根據所需變數的多寡, 自由的設定陣列的大小 陣列也可以如變數一樣, 當成引數在函式間的傳遞, 是一種非常方便的資料儲存空間。 一維陣列的宣告 格式: 範例: 宣告方式與一般變數類似,只是要宣告這個陣列中有幾個元素 陣列的 Index 在上面的例子中,ID[n] 表示 ID 這個陣列有十個元素,其編號分別是 ID[0], ID[1], ID[2]……ID[n-1] 陣列內的每個元素可視為同一型別的 n 個變數,不同資料型別的變數無法塞進同一個陣列內 範例 陣列初值給定 int x[10]; → 沒有給定初值 int x[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; → 表示 x[0]=1, x[1]=2……x[9]=10 int x[10] = {0}; → 表示 x[0] = x[1] = x[2] = …… = x[10]=0 int x[10] = {0,1,2,3,4,5,6,7,8,9,10}; → 會出現錯誤,因為 x 只有十個元素,但是初值集合 { } 內有十一個數 矩陣大小宣告較好的方式 把矩陣大小用「define」指令定義,程式本體內全部此取代,若要改變其值時,只要在 define 指令中修改即可 練習 將上一章(函式)的範例(輸入八個整數後找出其最大值)改寫,用陣列來儲存輸入的變數。找最大值的方法有二: 用原來的方法:自訂函數compare兩兩比出較大者 將biggest這個變數初值設為很小,保證不會比輸入數字中最大者還大。然後用一迴圈,將所有陣列中的元素(即輸入之值)跟biggest相比,只碰到比biggest大的元素,就將biggest的值更新為該元素的值 範例:陣列元素排序 所謂排序, 就是將一個隨意排列的數列, 經過一連串『比較大小』和『調換次序』的處理後, 使數列中的每個數字都依由小到大的升冪或者由大到小的降冪方式排列。 一維陣列元素排序法, 稱為汽泡排序法 (Bubble Sort)。在迴圈配合條件式執行過程, 較大的數值位置會漸漸的往前面移動, 感覺就好像一個氣泡由水底浮到水面, 因為壓力減小, 氣泡的體積會慢慢變大, 這就是其名稱的由來。 陣列內所有數值的排序 以下程式是由一個包含 5 個元素的字元陣列, 利用氣泡排序法, 將 5 個字母由大到小排列, 程式如下: 將陣列中的資料降冪排序 從螢幕輸出 將陣列中的資料降冪排序 從螢幕輸出 將陣列中的資料降冪排序 從螢幕輸出 執行結果 程式執行說明 氣泡排序法會先取第 1 個陣列元素, 與所有陣列元素比較後, 如果第 1 個陣列元素比第 2 個小, 則交換位置, 反之則不換。 i=0 時, 字元大小的比較, 就是在比較其 ASCII 碼, s、c、i、o、n 的 ASCII 碼分別為 115、99、105、111、110: 程式執行說明 程式執行說明 接著 i=1 時, 取第 2 個陣列元素與其後的所有元素比較: 程式執行說明 以此類推, 排序直到完成為止: 練習:資料的平均值以及標準差 若有一組資料 {x1, x2, ……, xN},其平均值 標準差為: 試寫作一程式,由鍵盤讀入 5 個數字,計算其平均值與標準差 練習:記票 寫作一程式,要求輸入 0~9 的數字,計算每個數字出現的次數以及出現率,若輸入 0~9 以外的數字或字元則結束程式,並輸出統計結果,以及計算各數字出現的比率 二維陣列 二維陣列的宣告語法如下: 資料型別 陣列名稱[列數][行數] 例如: int a[5][6]; ← 宣告一陣列 a,一共有五列、六行,共三十個元素,皆為整數 注意:與一維陣列相同,index 是由 0 開始計算,以
您可能关注的文档
最近下载
- 2021年高原心脏病的研究进展(全文).docx VIP
- 2024年全国消防宣传月(全国消防日)专题课件.ppt
- 成套简历几何简约个人简历word简历模板.pdf VIP
- 2021-2023年上海二模分类汇编:文言文一-上海市十六区近三年(2021-2023)高考语文一模、二模试题分类汇编(解析版).pdf VIP
- 《安检理论与实务》教案 第8课 掌握常见违禁品的相关知识.docx
- 服务与服务计算.ppt VIP
- 行政执法人员执法行为规范课件.pptx
- 分部工程验收会议纪要范文15篇.docx
- 工业固体废物协同矿山地质环境修复治理项目环评环境影响报告书.docx
- 燃气热水锅炉招标文件常压.docx
文档评论(0)