C/C++程序设计与算法第五周:实现二维矩阵乘法运算

2021-02-07 10:45:15 浏览数 (1)

参考链接: C 程序将两个数字相乘

二维矩阵乘法:编写程序算出连个矩阵相乘的结果 输入要求:先输入第一个矩阵大小,再输入每一行的矩阵数字 输入第二个矩阵大小,输入每一行的矩阵内容 

两个矩阵相乘必须满足:第一个矩阵的行,等于第二个矩阵的列 假定满足要求 

#include<iostream>

using namespace std;

#define MAX_SIZE 8

int A[MAX_SIZE][MAX_SIZE]={0};

int B[MAX_SIZE][MAX_SIZE]={0};

int C[MAX_SIZE][MAX_SIZE]={0};

int main(){

    int m,n;

    cin >>m >>n;

    int i;

    for( i = 0;i< m;i )

        for(int j = 0;j< n;j )  //矩阵 A

           cin>>A[i][j];

    cout<<"第二个矩阵 " <<endl;

    int p,q;

    cin >>p >>q;                 //矩阵 B

    for( i = 0;i< p;i )

        for(int j = 0;j< q;j )

           cin>>B[i][j];

    for( i = 0;i< m;i ){         // 相乘算法

        for(int j = 0;j< p ;j ){

           C[i][j] = 0;

           for(int k = 0;k< n;k )

              C[i][j] = A[i][k] * B[k][j];

        }

    }

    cout<<"矩阵结果 " <<endl;

    for( i = 0;i< m;i ){       // 输出A

       for(int j = 0;j< n;j )

          cout<< A[i][j]<<" ";

       cout<< endl;

    }

    cout<<endl;

    for( i = 0;i< p;i ){       // 输出B

       for(int j = 0;j< q;j )

          cout<< B[i][j]<<" ";

       cout<< endl;

    }

    cout<<endl;

    for( i = 0;i< m;i ){       // 输出C

       for(int j = 0;j< q;j )

          cout<< C[i][j]<<" ";

       cout<< endl;

    }

}

0 人点赞