SlideShare una empresa de Scribd logo
1 de 20
CH5 陣列
遠離超多變數的惡夢
By 文月(程教)
有一天,文月要結算成績
她決定寫個程式來幫助她。

來寫個程式吧><
這是她的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]<<endl;
}
}
終於不用宣告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[1][0][0]

a[0][0][1]

a[1][0][1]

a[0][0][2]

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[2][1][0]

Z

a[3][1][0]

a[1][1][1]

a[2][1][1]

a[3][1][1]

a[1][1][2]

a[2][1][2]

a[3][1][2]

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

有沒有覺得變簡單了呢?
陣列的應用
★文月的「印成績」程式就是一種陣列的應
用喔!
★接下來我們來看一些陣列的應用!
(又有很多題目可以做了,很棒對吧?)
應用一:費氏數列

★Code 在
應用二:進制轉換器

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

排箱子好好玩>w<
附錄code:費氏數列
#include <iostream>
using namespace std;
int main(){
int F[20];
F[0]=1;
F[1]=1;
for(int i=2;i<20;i++){
F[i]=F[i-1]+F[i-2];
}
for(int i=0;i<20;i++){
cout << " 第" << i+1 << " 個費氏數列數值為" << F[i] << endl;
}
}

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

数据结构回顾
数据结构回顾数据结构回顾
数据结构回顾
 
算法基础报告
算法基础报告算法基础报告
算法基础报告
 
C python 原始碼解析 投影片
C python 原始碼解析 投影片C python 原始碼解析 投影片
C python 原始碼解析 投影片
 
Java script patterns essentials
Java script patterns  essentialsJava script patterns  essentials
Java script patterns essentials
 
Ppt 120-126
Ppt 120-126Ppt 120-126
Ppt 120-126
 
第2章符 号 运 算
第2章符 号 运 算第2章符 号 运 算
第2章符 号 运 算
 
Chap 07
Chap 07Chap 07
Chap 07
 
Ch11 教學
Ch11 教學Ch11 教學
Ch11 教學
 
Ruby 使用手冊 (Part 1)
Ruby 使用手冊 (Part 1)Ruby 使用手冊 (Part 1)
Ruby 使用手冊 (Part 1)
 
Javascript 培训第三节 基础下
Javascript 培训第三节 基础下Javascript 培训第三节 基础下
Javascript 培训第三节 基础下
 
Ch1 c++總複習
Ch1 c++總複習Ch1 c++總複習
Ch1 c++總複習
 
Scala再探
Scala再探Scala再探
Scala再探
 
Ch10 範例
Ch10 範例Ch10 範例
Ch10 範例
 
Appendix B 範例
Appendix B 範例Appendix B 範例
Appendix B 範例
 
Sym py exersice2
Sym py exersice2Sym py exersice2
Sym py exersice2
 
Ch9 教學
Ch9 教學Ch9 教學
Ch9 教學
 
Ch10 教學
Ch10 教學Ch10 教學
Ch10 教學
 
Appendix B 教學
Appendix B 教學Appendix B 教學
Appendix B 教學
 
Py9 2
Py9 2Py9 2
Py9 2
 
Ppt 136-140
Ppt 136-140Ppt 136-140
Ppt 136-140
 

Similar a C++基礎程式設計 ch5 陣列

Chapter 3 basic syntax and operator
Chapter 3  basic syntax and operatorChapter 3  basic syntax and operator
Chapter 3 basic syntax and operatorhhliu
 
Python学习笔记
Python学习笔记Python学习笔记
Python学习笔记Lingfei Kong
 
C语言学习100例实例程序
C语言学习100例实例程序C语言学习100例实例程序
C语言学习100例实例程序yiditushe
 
HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享Chong-Kuan Chen
 
ncuma_型別與迴圈.pptx
ncuma_型別與迴圈.pptxncuma_型別與迴圈.pptx
ncuma_型別與迴圈.pptxNCU MCL
 
Python 2 - 快速簡介
Python 2 - 快速簡介Python 2 - 快速簡介
Python 2 - 快速簡介Cheyin L
 
第3章算法与控制语句
第3章算法与控制语句第3章算法与控制语句
第3章算法与控制语句summerfeng
 
連淡水阿嬤都聽得懂的 機器學習入門 scikit-learn
連淡水阿嬤都聽得懂的機器學習入門 scikit-learn 連淡水阿嬤都聽得懂的機器學習入門 scikit-learn
連淡水阿嬤都聽得懂的 機器學習入門 scikit-learn Cicilia Lee
 

Similar a C++基礎程式設計 ch5 陣列 (15)

Chapter 3 basic syntax and operator
Chapter 3  basic syntax and operatorChapter 3  basic syntax and operator
Chapter 3 basic syntax and operator
 
Python学习笔记
Python学习笔记Python学习笔记
Python学习笔记
 
C语言学习100例实例程序
C语言学习100例实例程序C语言学习100例实例程序
C语言学习100例实例程序
 
Ch6 函式
Ch6 函式Ch6 函式
Ch6 函式
 
HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享
 
ncuma_型別與迴圈.pptx
ncuma_型別與迴圈.pptxncuma_型別與迴圈.pptx
ncuma_型別與迴圈.pptx
 
Python 2 - 快速簡介
Python 2 - 快速簡介Python 2 - 快速簡介
Python 2 - 快速簡介
 
Essential C/C++
Essential C/C++Essential C/C++
Essential C/C++
 
Ppt 1-50
Ppt 1-50Ppt 1-50
Ppt 1-50
 
第3章算法与控制语句
第3章算法与控制语句第3章算法与控制语句
第3章算法与控制语句
 
第5章数组
第5章数组第5章数组
第5章数组
 
連淡水阿嬤都聽得懂的 機器學習入門 scikit-learn
連淡水阿嬤都聽得懂的機器學習入門 scikit-learn 連淡水阿嬤都聽得懂的機器學習入門 scikit-learn
連淡水阿嬤都聽得懂的 機器學習入門 scikit-learn
 
Ppt 1-25
Ppt 1-25Ppt 1-25
Ppt 1-25
 
Arduino程式快速入門
Arduino程式快速入門Arduino程式快速入門
Arduino程式快速入門
 
Ch10 習題
Ch10 習題Ch10 習題
Ch10 習題
 

Más de requiemformemories

Más de requiemformemories (14)

人文及社會科學班 介紹
人文及社會科學班 介紹人文及社會科學班 介紹
人文及社會科學班 介紹
 
地理報告-環境與疾病
地理報告-環境與疾病地理報告-環境與疾病
地理報告-環境與疾病
 
地理報告-能源組
地理報告-能源組地理報告-能源組
地理報告-能源組
 
地理報告-地景保育(澎湖國家公園)
地理報告-地景保育(澎湖國家公園)地理報告-地景保育(澎湖國家公園)
地理報告-地景保育(澎湖國家公園)
 
地理報告-全球暖化
地理報告-全球暖化地理報告-全球暖化
地理報告-全球暖化
 
地理報告-水患組
地理報告-水患組地理報告-水患組
地理報告-水患組
 
地理報告-糧食組
地理報告-糧食組地理報告-糧食組
地理報告-糧食組
 
地理報告-水資源
地理報告-水資源地理報告-水資源
地理報告-水資源
 
Ch5 堆疊與佇列
Ch5 堆疊與佇列Ch5 堆疊與佇列
Ch5 堆疊與佇列
 
Ch2 重複結構(迴圈)
Ch2 重複結構(迴圈)Ch2 重複結構(迴圈)
Ch2 重複結構(迴圈)
 
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 重複結構
 

C++基礎程式設計 ch5 陣列