• 沒有找到結果。

陣列的基本存取方法

N/A
N/A
Protected

Academic year: 2021

Share "陣列的基本存取方法"

Copied!
14
0
0

加載中.... (立即查看全文)

全文

(1)

第二章 陣列 (ARRAYS)

(2)

陣列(ARRAYS)的定義

陣列 (array) 是

 有限個相同資料型態的元素所組成  這些元素儲存於連續的記憶體中  共用一個的陣列名稱  每一個元素經由索引 ( index,或稱註標 ) 來識別  陣列可解釋為一組索引與資料的對映。

a

0 1 2 3 4

(3)

甚麼情況該使用陣列?

輸入5筆資料

int a, b, c, d, e; scanf("%d",&a); scanf("%d",&b); scanf("%d",&c); scanf("%d",&d); scanf("%d",&e);

如果有100筆資料呢?如何解決?

(4)

以C語言實作一維陣列

 不必製作(create),但是需先宣告,說明此陣列的元素的 資料型態與個數,以便分配足夠的記憶體。  宣告語法 資料型態 陣列名稱 [ 元素個數 ];  範例:儲存5筆學生成績 int score[5]; score 0 1 2 3 4

score[0] score[1] score[2] score[3] score[4]

(5)

存入資料 (STORE)

 直接設定寫入 score[0] = 13; //設定第1筆資料 score[1] = 42; //設定第2筆資料 score[2] = 20; //設定第3筆資料 score[3] = 5; //設定第4筆資料 score[4] = 10; //設定第5筆資料 score 0 1 2 3 4

score[0] score[1] score[2] score[3] score[4]

(6)

存入資料 (STORE) (續)

score 0 1 2 3 4

score[0] score[1] score[2] score[3] score[4]

13 42 20 5 10  使用 scanf() 輸入資料 scanf("%d", &score[0]); scanf("%d", &score[1]); scanf("%d", &score[2]); scanf("%d", &score[3]); scanf("%d", &score[4]); 可以改用迴圈

(7)

存入資料 (STORE) (續)

score 0 1 2 3 4

score[0] score[1] score[2] score[3] score[4]

13 42 20 5 10  運用迴圈 for(i=0;i<5;i++) scanf("%d",&score[i]);  如果有100筆資料呢?如何解決? int score[100],i; for(i=0;i<100;i++) scanf("%d",&score[i]); 是不是很方便呢?

(8)

存入資料 (STORE) (續)

陣列初值設定方法

(1) int data[5] = {0}; //所有元素值都設為0 data 0 1 2 3 4 0 0 0 0 0 num 0 1 2 1.2 2.5 3.0 s 0 1 2 3 4 1 2 3 0 0 (3) int s[5]={1,2,3}; //初值個數少於宣告元素個數時,其餘為0 (2) double num[]={1.2, 2.5, 3.0}; //設定值個數決定陣列大小

(9)

取出資料 (RETRIEVE)

 若要取出陣列 score 中索引值為 3 的元素資料,並

置於整數變數 y 中,C語言的實作方式為:

y = score[3];

score 0 1 2 3 4

score[0] score[1] score[2] score[3] score[4]

13 42 20 5 10

(10)

範例

輸入5筆成績,計算並輸出平均分數。

執行結果

(11)

範例練習

記錄1~10號同學的成績,將不及格的同學號碼列印出來。 例如同學成績如下: 則列印: 不及格同學的號碼為:2 3 8 10 號碼 1 2 3 4 5 6 7 8 9 10 成績 80 50 55 70 60 90 75 40 85 59

(12)

解題

1. 宣告陣列 int score[10]; 2. 輸入10個成績  scanf() 函數 3. 依序判斷每個成績如果小於60分,則列印此號碼 索引 0 1 2 3 4 5 6 7 8 9 整數陣列 80 50 55 70 60 90 75 40 85 59 號碼 1 2 3 4 5 6 7 8 9 10 成績 80 50 55 70 60 90 75 40 85 59 例如同學成績如下: 迴圈 if(成績 < 60) printf()函數 12

(13)

字串:字元陣列

char title[10];

strcpy(title, "maneger");

char title[] = "maneger";

char title[] = {'m','a','n','e','g','e','r','\0'};

title 0 1 2 3 4 5 6 7 8 9 m a n e g e r \0 title 0 1 2 3 4 5 6 7 m a n e g e r \0 結束字元 字串用雙引號 字元用單引號

(14)

參考程式

參考文獻

相關文件

下列哪一種記憶體屬於非揮發性記憶體, 不會因電源關閉而使其中的資料消 失, 但是可以透過電壓的方式重複抹除資料, 可用於基本輸入/ 輸出系統 (Basic Input / Output System,BIOS)

一、 重积分计算的基本方法 二、重积分计算的基本技巧 三、重积分的应用.. 重积分的

sort 函式可將一組資料排序成遞增 (ascending order) 或 遞減順序 (descending order)。. 如果這組資料是一個行或列向量,整組資料會進行排序。

1990 年底羅東 SMART1 陣列結束後,為了解不同地質條件下之地動反應中 研院地球研究所隨即於花蓮地區設置了第二個強震儀陣列,即 SMART2 陣列 (Strong Motion Accelerograph Array

微算機基本原理與應用 第15章

ðWinner winner, chicken

[r]

p 先导化合物的优化( Lead Optimization)的 目的是针对先导化合物存在的一些缺陷,进