您的位置:首页 > 其它

矩阵乘法

2015-10-11 21:03 351 查看
#include<iostream>

#include<cstdio>

#include<string.h>

#include<string>

#include<stack>

#include<set>

#include<algorithm>

#include<cmath>

#include<vector>

#include<map>

#include<sstream>

#include<queue>

#define ll __int64

#define lll unsigned long long

#define MAX 1000009

#define MAXN 2009

#define eps 1e-8

#define INF 0x7fffffff

#define mod 1000000007

#define clr(a) memset(a,0,sizeof(a))

#define clr1(a) memset(a,-1,sizeof(a))

#define lson l , m , rt << 1

#define rson m + 1 , r , rt << 1 | 1

using namespace std;

inline ll Max(ll a,ll b)

{

    return a>b?a:b;

}

inline ll Min(ll a,ll b)

{

    return a<b?a:b;

}

const int N = 109;

int n;

struct Mat

{

    int mat

;

};

Mat operator * (Mat a, Mat b)

{

    Mat c;

    memset(c.mat, 0, sizeof(c.mat));

    int i, j, k;

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

    {

        for(i = 0; i < n; ++i)

        {

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

            {

                c.mat[i][j] += a.mat[i][k] * b.mat[k][j];

            }

        }

    }

    return c;

}

int main()

{

    scanf("%d",&n);

    Mat A,B,C;

    for(int i = 0; i<n; i++)

    {

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

        {

            scanf("%d",&A.mat[i][j]);

        }

    }

    for(int i = 0; i<n; i++)

    {

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

        {

            scanf("%d",&B.mat[i][j]);

        }

    }

    C = A*B;

     for(int i = 0; i<n; i++)

    {

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

        {

            if(j!=0)

                printf(" ");

            printf("%d",C.mat[i][j]);

        }

        puts("");

    }

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: