陣列Array

一個你打code過程中很常接觸到的東西

為什麼需要陣列

  • 儲存多個同型態的資料

為什麼需要陣列

陣列種類

  • 一維

  • 二維

  • 三維

為什麼需要陣列

  • 儲存多個同型態的資料

為什麼需要陣列

陣列種類

  • 一維

  • 二維

  • 三維

一維陣列

什麼是一維陣列

這是一個int型號的格子

裡面可以放一個整數資料

什麼是一維陣列

這是一個櫃子

裡面有三個格子

可以放三個整數資料

什麼是一維陣列

每格都能放一個資料

格數不能任意變大

第一個格子編號為0

資料型態與設定陣列的型態一樣

如何宣告

int  a[3]  =  { 1 , 2 , 3 } ;

變數型態

空間數

變數名稱

內容物

如何賦值

#include <iostream>
using namespace std;
int main(){
    int a[3];
    for(int i=0;i<3;i++){
        a[i]=i+1;
    }
    ...
}

a[0]=1,a[1]=2,a[2]=3

#include <iostream>
using namespace std;
int main(){
    int a[3];
    //賦予單一格子值
    a[0]=1;
    //為所有格子都賦值
    for(int i=0;i<3;i++){
        a[i]=i+1;
    }
    ...
}

如何賦值

#include <iostream>
using namespace std;
int main(){
    int a[3];
    //賦予單一格子值
    a[0]=1;
    //為所有格子都賦值
    for(int i=0;i<3;i++){
        a[i]=i+1;
    }
    ...
}

a[0] = 1 , a[1] = 2 , a[2] = 3

用迴圈輸出

只輸出a

#include <iostream>
usung namespace std;
int main(){
    int a[3]={1,2,3};
    //輸出陣列裡的單一資料
    cout<<a[2]<<endl;
    //輸出陣列裡的所有資料
    for(int i=0;i<3;i++){
        cout<<a[i]<<endl;
    }
}
//3
//1
//2
//3
#include <iostream>
using namespace std;
int main(){
    int a[3]={1,2,3};
    cout<<a<<endl;
}
//0x7ffe6119faac

如何在陣列裡放入你要的值

也就是cin跟陣列的結合

#include <iostream>
using namespace std;
int main(){
    int a[3];
    for(int i=0;i<3;i++){
        cin>>a[i];
    }
    for(int i=0;i<3;i++){
        cout<<a[i]<<endl;
    }
}
//cin: 6 8 9
//6
//8
//9

二維陣列

什麼是二維陣列

這是一個櫃子

他代表一維陣列

什麼是二維陣列

這是兩個櫃子

裡面各有三格

可以放3*2=6個資料

什麼是二維陣列

每格都能放一個資料

編號都從0開始

基本跟一維一樣

如何宣告

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

變數型態

變數名稱

共幾行

共幾列

第一列裡的數字

第二列裡的數字

如何賦值

#include <iostream>
using namespace std;
int main(){
    int a[2][3];
    for(int i=0;i<2;i++){
        for(int j=0;j<3;j++){
            a[i][j]=i+j+1;
        }
    }
    ...
}

如何賦值

#include <iostream>
using namespace std;
int main(){
    int a[2][3];
    for(int i=0;i<2;i++){
        for(int j=0;j<3;j++){
            a[i][j]=i+j+1;
        }
    }
    ...
}

a[0][0] = 1 , a[0][1] = 2 , a[0][2] = 3

a[1][0] = 2 , a[1][1] = 3 , a[1][2] = 4

複習巢狀迴圈!

for(int i=0;i<2;i++){
    for(int j=0;j<3;j++){
        cout<<i+j<<" ";
    }
    cout<<endl;
}

i=0

j=0

cout:

複習巢狀迴圈!

for(int i=0;i<2;i++){
    for(int j=0;j<3;j++){
        cout<<i+j<<" ";
    }
    cout<<endl;
}

i=0

j=0

cout:

0

複習巢狀迴圈!

for(int i=0;i<2;i++){
    for(int j=0;j<3;j++){
        cout<<i+j<<" ";
    }
    cout<<endl;
}

i=0

j=1

cout:

0

1

複習巢狀迴圈!

for(int i=0;i<2;i++){
    for(int j=0;j<3;j++){
        cout<<i+j<<" ";
    }
    cout<<endl;
}

i=0

j=2

cout:

0

1

2

複習巢狀迴圈!

for(int i=0;i<2;i++){
    for(int j=0;j<3;j++){
        cout<<i+j<<" ";
    }
    cout<<endl;
}

i=0

j=3

cout:

0

1

2

複習巢狀迴圈!

for(int i=0;i<2;i++){
    for(int j=0;j<3;j++){
        cout<<i+j<<" ";
    }
    cout<<endl;
}

i=0

j=3

cout:

0

1

2

不符合j<3

複習巢狀迴圈!

for(int i=0;i<2;i++){
    for(int j=0;j<3;j++){
        cout<<i+j<<" ";
    }
    cout<<endl;
}

i=1

j=0

cout:

0

1

2

複習巢狀迴圈!

for(int i=0;i<2;i++){
    for(int j=0;j<3;j++){
        cout<<i+j<<" ";
    }
    cout<<endl;
}

i=1

j=0

cout:

0

1

2

1

複習巢狀迴圈!

for(int i=0;i<2;i++){
    for(int j=0;j<3;j++){
        cout<<i+j<<" ";
    }
    cout<<endl;
}

i=1

j=1

cout:

0

1

2

1

1

2

複習巢狀迴圈!

for(int i=0;i<2;i++){
    for(int j=0;j<3;j++){
        cout<<i+j<<" ";
    }
    cout<<endl;
}

i=1

j=2

cout:

0

1

2

1

2

3

複習巢狀迴圈!

for(int i=0;i<2;i++){
    for(int j=0;j<3;j++){
        cout<<i+j<<" ";
    }
    cout<<endl;
}

i=1

j=3

cout:

0

1

2

1

2

3

複習巢狀迴圈!

for(int i=0;i<2;i++){
    for(int j=0;j<3;j++){
        cout<<i+j<<" ";
    }
    cout<<endl;
}

i=1

j=3

cout:

0

1

2

1

2

3

不符合j<3

複習巢狀迴圈!

for(int i=0;i<2;i++){
    for(int j=0;j<3;j++){
        cout<<i+j<<" ";
    }
    cout<<endl;
}

i=2

j=0

cout:

0

1

2

1

2

3

複習巢狀迴圈!

for(int i=0;i<2;i++){
    for(int j=0;j<3;j++){
        cout<<i+j<<" ";
    }
    cout<<endl;
}

i=2

j=0

cout:

0

1

2

1

2

3

不符合i<2

輸出方法跟輸入一樣

都要用巢狀迴圈喔!

示範如何在二維陣列裡塞入你想要的值

#include <iostream>
using namespace std;
int main(){
    int a[2][3];
    for(int i=0;i<2;i++){
        for(int j=0;j<3;j++){
            cin>>a[i][j];
        }
    }
    for(int i=0;i<2;i++){
        for(int j=0;j<3;j++){
            a[i][j]=a[i][j]+1;
            cout<<a[i][j]<<" ";
        }
        cout<<endl;
    }
}
//cin: 1 2 3
//     4 5 6
//2 3 4
//5 6 7

補充:三維陣列

什麼是三維陣列

<a[2][2][3]

這裡是兩排的兩個櫃子

每個格子裡都有3個格子

三維陣列統整

  • 用法和注意事項跟前面的一樣
  • 賦值和輸出要用三層迴圈

社內賽!!

考到下課喔~

array

By problemsolvemaster_kaitochiang