二維陣列

(不管啦 它是矩陣啦矩陣)

一維陣列(複習)

陣列值型別 陣列名稱[儲存容量]={值}

     int            arr             [5]          ={ 0 }

{1,2,3,4,5}

#include <iostream>
using namespace std;
int main()
{
    int a[10]={1,2,3,4,5,6,7,8,9,10};
    for(int i=0;i<10;i++)
        cout<<a[i]<<" ";
}

cout<<a;

練習題

今天公關吱吱想要選出四校分別誰是其中最怪的怪人,她依四校幹部編排順序,幫他們依序標示出怪人指數,請輸出四校分別最怪的人?

輸入說明

第一行有一個正整數n

第二行有個n個字串 Ai

第三行有個n個整數 Bi

1<=n<=10, 0<=Bi<=10

輸出說明

輸出名字

練習題

今天公關吱吱想要選出四校分別誰是其中最怪的怪人,她依四校幹位編排順序,幫他們依序標示出怪人指數,請輸出四校分別最怪的人?

範例輸入#1

7

cy leaf chyun phoebe chieh min rachel

8 7 7 6 9 9 8

範例輸出#1

chieh min

範例輸入#2

10

howhsien franzlee lucas ian lc cj cooookie ws chengyou snyhl

8 9 7 8 6 7 6 7 8 8

範例輸出#2

franzlee

#include <iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    string a[15];
    int b[15];
    for(int i=0;i<n;i++)    cin>>a[i];
    for(int i=0;i<n;i++)    cin>>b[i];
    string c[15];//最怪的人
    int cnt=-1;//計有幾個怪人
    int max=0;//最大值
    for(int i=0;i<n;i++)
        if(b[i]>=max)    max=b[i];
    for(int i=0;i<n;i++)
    {
        if(b[i]==max)
        {
            cnt++;
            c[cnt]=a[i];
        }
    }
    for(int i=0;i<=cnt;i++)  cout<<c[i]<<" ";
    return 0;
}
#include <iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    string a[15];
    int b[15];
    for(int i=0;i<n;i++)    cin>>a[i];
    for(int i=0;i<n;i++)    cin>>b[i];
    string c[15];//最怪的人
    int cnt=-1;//計有幾個怪人
    int max=0;//最大值
    for(int i=0;i<n;i++)
        if(b[i]>=max)    max=b[i];
    for(int i=0;i<n;i++)
    {
        if(b[i]==max)
        {
            cnt++;
            c[cnt]=a[i];
        }
    }
    for(int i=0;i<=cnt;i++)  cout<<c[i]<<" ";
    return 0;
}

二維陣列

int arr[2][3]={{0,1,2},{3,4,5}}

陣列值型別

陣列名稱

儲存容量

0 1 2
0
1

0

1

2

3

4

5

arr[0][0]=0

arr[0][1]=1

arr[0][2]=2

arr[1][0]=3

arr[1][1]=4

arr[1][2]=5

#include <iostream>
using namespace std;
int main()
{
    int a[2][3]=
    {
        {0, 1, 2},
        {3, 4, 5}
    };
    return 0;
}

賦值

指定

for迴圈

#include <iostream>
using namespace std;
int main()
{
    int a[2][3];
    a[0][0]=0;
    a[0][1]=1;
    a[0][2]=2;
    a[1][0]=3;
    a[1][1]=4;
    a[1][2]=5;
    return 0;
}
#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];
    return 0;
}

輸入

指定

#include <iostream>
using namespace std;
int main()
{
    int n,m;
    cin>>n>>m;
    int a[n][m];
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            cin>>a[i][j];
    return 0;
}

2 3

0 1 2 3 4 5

0<=n<=100, 0<=m<=100

#include <iostream>
using namespace std;
int main()
{
    int n,m,a[105][105];
    cin>>n>>m;
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            cin>>a[i][j];
    return 0;
}
#include <iostream>
using namespace std;
int main()
{
    int n,m;
    cin>>n>>m;
    int a[n][m];
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            cin>>a[i][j];
    return 0;
}

*6、7不可交換

輸出

#include <iostream>
using namespace std;
int main()
{
    int a[3][3]=
    {
      {50, 100, 200},
      {20, 40, 60},
      {800, 1200,1600}
    };
    for(int i=0;i<3;i++)
    {
        for(int j=0;j<3;j++)
        {
            cout<<a[i][j]<<" ";
        }
        cout<<endl;
    }
    return 0;
}

50 100 200

20 40 60

800 1200 1600

輸出

#include <iostream>
using namespace std;
int main()
{
    int a[3][3]=
    {
      {50, 100, 200},
      {20, 40, 60},
      {800, 1200,1600}
    };
    cout<<"每日午餐費"<<a[0][0]<<endl;
    cout<<"每月交通費"<<a[2][1]<<endl;
    return 0;
}

每日午餐費50
每月交通費1200

練習題

今日教學長妘寶正在複習好久沒玩的矩陣,她知道矩陣怎麼相加減,但數字太多太大了,她好懶,於是乎她打開online gdb請程式幫她運算,請問她要如何寫扣,才能讓解答正確?

輸入說明

第一行有兩個正整數m,n

第二行有個m*n個整數Ai

第三行有個字元c

第四行有個m*n個整數Bi

1<=m<=100, 1<=n<=100

Ai<=1000000, Bi<=1000000

c為+或-

輸出說明

m*n的矩陣

練習題

今日教學長正在複習好久沒玩的矩陣,她知道矩陣怎麼相加,但數字太多太大了,她好懶,於是乎她打開online gdb請程式幫她運算,請問她要如何寫扣,才能讓解答正確?

範例輸入#1

3 2

7 2 10 -1 3 5

+

4 2 3 16 -2 9

範例輸出#1

11 4

13 15

1 14

範例輸入#2

範例輸出#2

2 2

100 2024 310 370

-

406 7428 560 180

-306 -5404

-250 190

7 2

10 -1

3 5

4 2

3 16

-2 9

=

11 4

13 15

1 14

100 2024

310 370

406 7428

560 180

=

-306 -5404

-250 190

數學小教室

數學 真好~

5 9 1

4 2 3

1 0

2 3

4 4

=

22 31

20 18

\times

5 x 1+ 9 x 2+ 1 x 4 = 22

5 x 0 + 9 x 3 + 1 x 4 = 31

4 x 1+ 2 x 2 + 3 x 4 = 20

4 x 0 + 2 x 3 + 3 x 4 = 18  

#include <iostream>
using namespace std;
int main(){
    int m,n;
    cin>>m>>n;
    int a[m][n],b[m][n];
    for(int i=0;i<m;i++)
        for(int j=0;j<n;j++)
            cin>>a[i][j];
    char c;
    cin>>c;
    for(int i=0;i<m;i++)
        for(int j=0;j<n;j++)
            cin>>b[i][j];
    int sum[m][n];
    if(c=='+'){
        for(int i=0;i<m;i++)
            for(int j=0;j<n;j++)
                sum[i][j]=a[i][j]+b[i][j];

    }
    else{
        for(int i=0;i<m;i++)
            for(int j=0;j<n;j++)
                sum[i][j]=a[i][j]-b[i][j];
    }
    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++)
            cout<<sum[i][j]<<" ";
        cout<<endl;
    }
}
\textit{kahoot time}

二維陣列

By chainy

二維陣列

  • 249