SlideShare a Scribd company logo
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

C語言結構與串列
C語言結構與串列 C語言結構與串列
C語言結構與串列
吳錫修 (ShyiShiou Wu)
 
C語言標準輸出入函式
C語言標準輸出入函式C語言標準輸出入函式
C語言標準輸出入函式
吳錫修 (ShyiShiou Wu)
 
Ch1 教學
Ch1 教學Ch1 教學
Ch1 教學
hungchiayang1
 
C語言列舉與聯合
C語言列舉與聯合C語言列舉與聯合
C語言列舉與聯合
吳錫修 (ShyiShiou Wu)
 
Ppt 120-126
Ppt 120-126Ppt 120-126
Ppt 120-126
hungchiayang1
 
Deferred execution
Deferred executionDeferred execution
Deferred execution
cuipengfei
 
P127 135 new
P127 135 newP127 135 new
P127 135 new
hungchiayang1
 
Ppt 78-100
Ppt 78-100Ppt 78-100
Ppt 78-100
hungchiayang1
 
Ppt 26-50
Ppt 26-50Ppt 26-50
Ppt 26-50
hungchiayang1
 
Mark java script & jquery 基本入門
Mark   java script & jquery 基本入門Mark   java script & jquery 基本入門
Mark java script & jquery 基本入門LearningTech
 
Py9 2
Py9 2Py9 2
Ch12 範例
Ch12 範例Ch12 範例
Ch12 範例
hungchiayang1
 
Effective_Vim
Effective_VimEffective_Vim
Effective_VimKing Hom
 
Ppt 51-77
Ppt 51-77Ppt 51-77
Ppt 51-77
hungchiayang1
 
Ch11 教學
Ch11 教學Ch11 教學
Ch11 教學
hungchiayang1
 
Sym py edu
Sym py eduSym py edu
Sym py edu
Alisha Smile
 
Ppt 1-50
Ppt 1-50Ppt 1-50
Ppt 1-50
hungchiayang1
 
MATLAB_曲面作图
MATLAB_曲面作图MATLAB_曲面作图
MATLAB_曲面作图byron zhao
 
Ppt 120-126
Ppt 120-126Ppt 120-126
Ppt 120-126
hungchiayang1
 

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 陣列

Ppt 1-25
Ppt 1-25Ppt 1-25
Ppt 1-25
hungchiayang1
 
Python学习笔记
Python学习笔记Python学习笔记
Python学习笔记
Lingfei Kong
 
ncuma_型別與迴圈.pptx
ncuma_型別與迴圈.pptxncuma_型別與迴圈.pptx
ncuma_型別與迴圈.pptx
NCU MCL
 
Chapter 3 basic syntax and operator
Chapter 3  basic syntax and operatorChapter 3  basic syntax and operator
Chapter 3 basic syntax and operator
hhliu
 
第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_字串.pptx
NCU MCL
 
Python 入門
Python 入門 Python 入門
Python 入門
Andy Yao
 
第5章数组
第5章数组第5章数组
第5章数组
summerfeng
 

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

人文及社會科學班 介紹
人文及社會科學班 介紹人文及社會科學班 介紹
人文及社會科學班 介紹requiemformemories
 
地理報告-地景保育(澎湖國家公園)
地理報告-地景保育(澎湖國家公園)地理報告-地景保育(澎湖國家公園)
地理報告-地景保育(澎湖國家公園)requiemformemories
 
地理報告-水資源
地理報告-水資源地理報告-水資源
地理報告-水資源
requiemformemories
 
Ch5 堆疊與佇列
Ch5 堆疊與佇列Ch5 堆疊與佇列
Ch5 堆疊與佇列
requiemformemories
 
Ch6 函式
Ch6 函式Ch6 函式
Ch6 函式
requiemformemories
 
C++基礎程式設計 ch1 進入c++的世界
C++基礎程式設計 ch1 進入c++的世界C++基礎程式設計 ch1 進入c++的世界
C++基礎程式設計 ch1 進入c++的世界
requiemformemories
 
C++基礎程式設計 Zero judge介紹
C++基礎程式設計 Zero judge介紹C++基礎程式設計 Zero judge介紹
C++基礎程式設計 Zero judge介紹
requiemformemories
 
C++基礎程式設計 ch4 重複結構
C++基礎程式設計 ch4 重複結構C++基礎程式設計 ch4 重複結構
C++基礎程式設計 ch4 重複結構
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 陣列