aden 發問時間: 電腦與網際網路程式設計 · 1 0 年前

c語言 二維陣列矩陣相乘

之前有別人發同樣的題目,但是我都看不太清楚,希望有人幫我解答>"<謝謝

利用二維陣列實做矩陣相乘的程式(2X3矩陣m1乘以3X2矩陣m2得到一個2X2矩陣m3)

變數宣告:

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

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

int m3[2][2];

執行結果:

m1(如下):

1 2 3

4 5 6

m2(如下):

1 2

3 4

5 6

m3=m2*m1如下:

22 28

49 64

3 個解答

評分
  • 1 0 年前
    最佳解答

    #include<stdio.h>

    void main()

    {

    int i,j,k,temp;

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

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

    int m3[2][2]={0};

    for(i=0;i<2;i++){

    for(j=0;j<2;j++){

    for(k=0;k<3;k++){

    m3[i][j]=m3[i][j]+m1[i][k]*m2[k][j];//相乘

    }

    }

    }

    printf("m1:\n");//印出m1

    for(i=0;i<2;i++){

    for(j=0;j<3;j++){

    printf("%d\t",m1[i][j]);

    }

    printf("\n");

    }

    printf("m2:\n");//印出m2

    for(i=0;i<3;i++){

    for(j=0;j<2;j++){

    printf("%d\t",m2[i][j]);

    }

    printf("\n");

    }

    printf("m1*m2:\n");//印出m3

    for(i=0;i<2;i++){

    for(j=0;j<2;j++){

    printf("%d\t",m3[i][j]);

    }

    printf("\n");

    }

    }

    參考資料: 自己
  • 1 0 年前

    m2 × m1 是 3 × 3 矩陣

    m1 × m2 才是 2 × 2 矩陣

  • 1 0 年前

    int i,j,k;

    for(i=0; i&lt;2; i++)

    {

    for(j=0;j&lt;2;j++)

    {

    for(k=0;k&lt;3;k++)

    {

    m3[i][j]+=m1[i][k]*m2[k][j];

    }

    }

    }

    參考資料: 自己
還有問題?馬上發問,尋求解答。