多維陣列

by Welly

還記得J個嗎

簡單複習一下~

多維陣列

表格的感覺~

用法:陣列名稱[列數][行數]

賦值方法=>

#include <iostream>

using namespace std;

int main()
{
    int arrayy[3][3]={{1,2,3},
                      {4,5,6},
                      {7,8,9}};
                      
    int array2[3][3]={10,20,30,
                      40,50,60,
                      70,80,90};
    return 0;
}

//1 2 3
//4 5 6
//7 8 9
//10 20 30
//40 50 60
//70 80 90

多維陣列輸出入

可以直接cin嗎?

要用for迴圈喔~

#include <iostream>

using namespace std;

int main()
{
    int arrayy[3][3];
    for(int i=0;i<3;i++){
        for(int j=0;j<3;j++){
            cin>>arrayy[i][j];
        }
    }

    return 0;
}

//多維陣列輸入
/ column0 column1 column2
row0 arrayy[0][0] arrayy[0][1] arrayy[0][2]
value 1
row1 arrayy[1][0] arrayy[1][1] arrayy[1][2]
value
row2 arrayy[2][0] arrayy[2][1] arrayy[2][2]
value

i=0 j=0

/ column0 column1 column2
row0 arrayy[0][0] arrayy[0][1] arrayy[0][2]
value 1 2
row1 arrayy[1][0] arrayy[1][1] arrayy[1][2]
value
row2 arrayy[2][0] arrayy[2][1] arrayy[2][2]
value

i=0 j=1

/ column0 column1 column2
row0 arrayy[0][0] arrayy[0][1] arrayy[0][2]
value 1 2 3
row1 arrayy[1][0] arrayy[1][1] arrayy[1][2]
value
row2 arrayy[2][0] arrayy[2][1] arrayy[2][2]
value

i=0 j=2

/ column0 column1 column2
row0 arrayy[0][0] arrayy[0][1] arrayy[0][2]
value 1 2 3
row1 arrayy[1][0] arrayy[1][1] arrayy[1][2]
value 4
row2 arrayy[2][0] arrayy[2][1] arrayy[2][2]
value

i=1 j=0

/ column0 column1 column2
row0 arrayy[0][0] arrayy[0][1] arrayy[0][2]
value 1 2 3
row1 arrayy[1][0] arrayy[1][1] arrayy[1][2]
value 4 5
row2 arrayy[2][0] arrayy[2][1] arrayy[2][2]
value

i=1 j=1

/ column0 column1 column2
row0 arrayy[0][0] arrayy[0][1] arrayy[0][2]
value 1 2 3
row1 arrayy[1][0] arrayy[1][1] arrayy[1][2]
value 4 5 6
row2 arrayy[2][0] arrayy[2][1] arrayy[2][2]
value

i=1 j=2

/ column0 column1 column2
row0 arrayy[0][0] arrayy[0][1] arrayy[0][2]
value 1 2 3
row1 arrayy[1][0] arrayy[1][1] arrayy[1][2]
value 4 5 6
row2 arrayy[2][0] arrayy[2][1] arrayy[2][2]
value 7

i=2 j=0

/ column0 column1 column2
row0 arrayy[0][0] arrayy[0][1] arrayy[0][2]
value 1 2 3
row1 arrayy[1][0] arrayy[1][1] arrayy[1][2]
value 4 5 6
row2 arrayy[2][0] arrayy[2][1] arrayy[2][2]
value 7 8

i=2 j=1

/ column0 column1 column2
row0 arrayy[0][0] arrayy[0][1] arrayy[0][2]
value 1 2 3
row1 arrayy[1][0] arrayy[1][1] arrayy[1][2]
value 4 5 6
row2 arrayy[2][0] arrayy[2][1] arrayy[2][2]
value 7 8 9

i=2 j=2

那輸出可以直接cout嗎?

可是這個不是陣列!

輸出也一樣歐~

#include <iostream>

using namespace std;

int main()
{
    int arrayy[3][3];
    for(int i=0;i<3;i++){
        for(int j=0;j<3;j++){
            cin>>arrayy[i][j];
        }
    }
    for(int i=0;i<3;i++){
        for(int j=0;j<3;j++){
            cout<<arrayy[i][j]<<" ";
        }
        cout<<endl;
    }
    return 0;
}

//1 2 3
//4 5 6
//7 8 9

練習題~(10min)

幫天天輸成績~

天天又要登記成績了(怎樣都是天天www

雖然天天是資訊老師,但天天不知道為甚麼想要一起輸入其他科目的成績,所以她就看上了看起來很電的你,幫忙天天輸入跟輸出成績八~

輸入說明:

第一行先給一個數字s代表學生數(即接下來會有幾筆輸入)

接著依序給予s行成績,每行五個科目

輸出說明:

按順序輸出(需為表格形式)

答案:D

#include <iostream>

using namespace std;

int main()
{
    int arrayy[100][100];
    int num;
    cin>>num;
    for(int i=0;i<num;i++){
        for(int j=0;j<5;j++){
            cin>>arrayy[i][j];
        }
    }
    for(int i=0;i<num;i++){
        for(int j=0;j<5;j++){
            cout<<arrayy[i][j]<<" ";
        }
        cout<<endl;
    }

    return 0;
}
Made with Slides.com