SlideShare a Scribd company logo
1 of 20
CH3 陣列
遠離超多變數的惡夢
程教 文月
有一天,文月要結算成績
她決定寫個程式來幫助她。

來寫個程式吧 ><
這是她的 code :
#include<iostream>
輸出結果→
using namespace std;
int main(){
int a;
int b;
int c;
....( 省略 )
cin>>a>>b>>c>>...( 省略 );
cout<<" 第 1 位同學的分數是 "<<a<<endl;
cout<<" 第 2 位同學的分數是 "<<b<<endl;
cout<<" 第 3 位同學的分數是 "<<c<<endl;
....( 省略 )
}
文月已死…

Q:

要怎麼做才能夠不用宣告這麼多變數呢?
救星出現! - 陣列
★ 什麼是陣列?
陣列是將相同資料型別的多個變數結合在一起,每
個陣列元素皆可視為變數使用。
★ 怎麼找到我要的那一個變數?
陣列佔有連續的記憶體空間,陣列提供索引值存取
陣列元素。
C 語言規定陣列的第一個元素其索引值為 0 ,第二
個元素其索引值為 1 ,依此類推,一個陣列擁有
n 個元素,若要存取陣列最後一個元素,需設定
索引值為 n-1 。
不懂嗎?先讓我們在看下去 >w<
陣列的宣告與初始化
★宣告並初始化陣列的語法如下:
資料型別

陣列的第一個
元素其索引值
為0

int a[3];
a[0]=50;
a[1]=30;
a[2]=100;

陣列名稱

陣列元素數
陣列的宣告與初始化
★也可以這樣寫:

int a[3]={50,30,100};
在宣告時就把值存入
陣列的宣告與初始化
★善用迴圈來輸入陣列元素的值:

int a[3];
for(int i=0;i<3;i++){
cin>>a[i];
}
文月的 code 變簡潔了!

#include<iostream>
using namespace std;
int main(){
int a[10]={90,87,88,75,94,66,77,98,40,70};
for(int i=1;i<=10;i++){
cout<<" 第 "<<i<<" 位同學的分數是 "<<a[i-1]<<end
}
}
終於不用宣告 10 個變數了

!很棒對吧?
陣列就像一排箱子……
★還記得變數就像箱子的比喻嘛?陣列就像是一排
黏在一起的箱子,當你要找你想要的那一個箱子
時不需要每一個都命名,只需要找「左邊 / 右邊
數來第 X 個」就好了。

a[0]

a[1]

a[2]

a[3]

a[4]

……
箱子堆高高 – 二維陣列
★你知道嗎?箱子可以有好幾列喔!而且它有個響
亮的名字:二維陣列。
★宣告二維陣列的形式:
Y

int a[x][y];

a[0][0]

a[1][0]

a[0][1]

a[1][1]

a[0][2]

a[1][2]

範例 : a[2][3]

X
箱子堆高高 – 二維陣列
★如果一開始就要把值存入的話可以這樣寫:

int a[2][3]={{1,2,3},{4,5,6}}
Y
a[*][2]

a[0][0]
1

a[1][0]
4

a[*][1]

a[0][1]
2

a[1][1]
5

a[*][0]

a[0][2]
3

a[1][2]
6

a[0][*]

a[1][*]

X
箱子好幾排 – 三維陣列
★宣告型式如下:
a[x][y][z]
★範例: a[3][2][4]

Y
a[0][0][0] a[0][0][1] a[0][0][2]
a[1][0][0] a[1][0][1] a[1][0][2]
a[2][0][0] a[2][0][1] a[2][0][2]
a[0][1][0] a[0][1][1]
a[3][0][0] a[3][0][1] a[3][0][2] a[0][1][2]
a[1][1][0] a[1][1][1] a[1][1][2]
a[2][1][0] a[2][1][1] a[2][1][2]

Z

a[3][1][0] a[3][1][1] a[3][1][2]

X
一維?二維?多維陣列!?
★所以可以寫 a[2][3][4][5] 嘛? b[3][4][5][6][7] 嘛?
答案是肯定的喔!
★你說:「天啊!四維五維六維……我想像不出圖
形了!三維是我的極限啊!」
不用擔心,把它想成裝箱子的大箱子即可!
裝箱子的大箱子想像圖

有沒有覺得變簡單了呢?
陣列的應用
★文月的「印成績」程式就是一種陣列的應
用喔!
★接下來我們來看一些陣列的應用!
(又有很多題目可以做了,很棒對吧?)
應用一:費氏數列
參考 code :費氏數列
#include <iostream>
using namespace std;
int main(){
int F[41];
F[1]=1;
F[2]=1;
for(int i=3;i<41;i++){
傳說中的遞迴式 !!
F[i]=F[i-1]+F[i-2];
}
for(int i=1;i<41;i++){
cout << " 第 " << i+1 << " 個費氏數列數值為 " << F[i] <<
endl;
}
}
應用二:進制轉換器

★此為十進制轉二進制轉換器
★Code 怎麼寫?想想看
報告到此結束,謝謝大家!
要記得寫作業喔!

排箱子好好玩 >w<

More Related Content

What's hot (20)

C語言結構與串列
C語言結構與串列 C語言結構與串列
C語言結構與串列
 
C語言標準輸出入函式
C語言標準輸出入函式C語言標準輸出入函式
C語言標準輸出入函式
 
Ch1 教學
Ch1 教學Ch1 教學
Ch1 教學
 
C語言列舉與聯合
C語言列舉與聯合C語言列舉與聯合
C語言列舉與聯合
 
Ppt 120-126
Ppt 120-126Ppt 120-126
Ppt 120-126
 
Deferred execution
Deferred executionDeferred execution
Deferred execution
 
P127 135 new
P127 135 newP127 135 new
P127 135 new
 
Ppt 78-100
Ppt 78-100Ppt 78-100
Ppt 78-100
 
Ppt 26-50
Ppt 26-50Ppt 26-50
Ppt 26-50
 
Mark java script & jquery 基本入門
Mark   java script & jquery 基本入門Mark   java script & jquery 基本入門
Mark java script & jquery 基本入門
 
Py9 2
Py9 2Py9 2
Py9 2
 
Ch12 範例
Ch12 範例Ch12 範例
Ch12 範例
 
Effective_Vim
Effective_VimEffective_Vim
Effective_Vim
 
11. límite de funciones
11. límite de funciones11. límite de funciones
11. límite de funciones
 
Ppt 51-77
Ppt 51-77Ppt 51-77
Ppt 51-77
 
Ch11 教學
Ch11 教學Ch11 教學
Ch11 教學
 
Sym py edu
Sym py eduSym py edu
Sym py edu
 
Ppt 1-50
Ppt 1-50Ppt 1-50
Ppt 1-50
 
MATLAB_曲面作图
MATLAB_曲面作图MATLAB_曲面作图
MATLAB_曲面作图
 
Ppt 120-126
Ppt 120-126Ppt 120-126
Ppt 120-126
 

Similar to Ch3 陣列

Python学习笔记
Python学习笔记Python学习笔记
Python学习笔记Lingfei Kong
 
ncuma_型別與迴圈.pptx
ncuma_型別與迴圈.pptxncuma_型別與迴圈.pptx
ncuma_型別與迴圈.pptxNCU MCL
 
Chapter 3 basic syntax and operator
Chapter 3  basic syntax and operatorChapter 3  basic syntax and operator
Chapter 3 basic syntax and operatorhhliu
 
第3章算法与控制语句
第3章算法与控制语句第3章算法与控制语句
第3章算法与控制语句summerfeng
 
C语言学习100例实例程序
C语言学习100例实例程序C语言学习100例实例程序
C语言学习100例实例程序yiditushe
 
Python 2 - 快速簡介
Python 2 - 快速簡介Python 2 - 快速簡介
Python 2 - 快速簡介Cheyin L
 
ncuma_字串.pptx
ncuma_字串.pptxncuma_字串.pptx
ncuma_字串.pptxNCU MCL
 
Python 入門
Python 入門 Python 入門
Python 入門 Andy Yao
 

Similar to Ch3 陣列 (10)

Ppt 1-25
Ppt 1-25Ppt 1-25
Ppt 1-25
 
Python学习笔记
Python学习笔记Python学习笔记
Python学习笔记
 
ncuma_型別與迴圈.pptx
ncuma_型別與迴圈.pptxncuma_型別與迴圈.pptx
ncuma_型別與迴圈.pptx
 
Chapter 3 basic syntax and operator
Chapter 3  basic syntax and operatorChapter 3  basic syntax and operator
Chapter 3 basic syntax and operator
 
第3章算法与控制语句
第3章算法与控制语句第3章算法与控制语句
第3章算法与控制语句
 
C语言学习100例实例程序
C语言学习100例实例程序C语言学习100例实例程序
C语言学习100例实例程序
 
Python 2 - 快速簡介
Python 2 - 快速簡介Python 2 - 快速簡介
Python 2 - 快速簡介
 
ncuma_字串.pptx
ncuma_字串.pptxncuma_字串.pptx
ncuma_字串.pptx
 
Python 入門
Python 入門 Python 入門
Python 入門
 
第5章数组
第5章数组第5章数组
第5章数组
 

More from requiemformemories

More from requiemformemories (16)

人文及社會科學班 介紹
人文及社會科學班 介紹人文及社會科學班 介紹
人文及社會科學班 介紹
 
地理報告-環境與疾病
地理報告-環境與疾病地理報告-環境與疾病
地理報告-環境與疾病
 
地理報告-能源組
地理報告-能源組地理報告-能源組
地理報告-能源組
 
地理報告-地景保育(澎湖國家公園)
地理報告-地景保育(澎湖國家公園)地理報告-地景保育(澎湖國家公園)
地理報告-地景保育(澎湖國家公園)
 
地理報告-全球暖化
地理報告-全球暖化地理報告-全球暖化
地理報告-全球暖化
 
地理報告-水患組
地理報告-水患組地理報告-水患組
地理報告-水患組
 
地理報告-糧食組
地理報告-糧食組地理報告-糧食組
地理報告-糧食組
 
地理報告-水資源
地理報告-水資源地理報告-水資源
地理報告-水資源
 
Ch5 堆疊與佇列
Ch5 堆疊與佇列Ch5 堆疊與佇列
Ch5 堆疊與佇列
 
Ch6 函式
Ch6 函式Ch6 函式
Ch6 函式
 
Ch2 重複結構(迴圈)
Ch2 重複結構(迴圈)Ch2 重複結構(迴圈)
Ch2 重複結構(迴圈)
 
Ch1 c++總複習
Ch1 c++總複習Ch1 c++總複習
Ch1 c++總複習
 
Ch4 字元陣列
Ch4 字元陣列Ch4 字元陣列
Ch4 字元陣列
 
C++基礎程式設計 ch1 進入c++的世界
C++基礎程式設計 ch1 進入c++的世界C++基礎程式設計 ch1 進入c++的世界
C++基礎程式設計 ch1 進入c++的世界
 
C++基礎程式設計 Zero judge介紹
C++基礎程式設計 Zero judge介紹C++基礎程式設計 Zero judge介紹
C++基礎程式設計 Zero judge介紹
 
C++基礎程式設計 ch4 重複結構
C++基礎程式設計 ch4 重複結構C++基礎程式設計 ch4 重複結構
C++基礎程式設計 ch4 重複結構
 

Ch3 陣列