c++实现矩阵相乘

面试实习生时,面试官出了一道手写编程题:实现矩阵相乘
代码如下:

#include 
using namespace std;
int** multiply(int (*A)[3], int B[][3], int M, int K, int N) {
    //int *C = new int[M];  //一维申请数组
    int **C = new int*[M];
    for (int i = 0; i < M; i++)
        C[i] = new int[N];
    for (int m = 0; m < M; m++)
        for (int n = 0; n < N; n++){
            C[m][n] = 0;
            for (int k = 0; k < K; k++)
                C[m][n] += A[m][k] * B[k][n];
        }
    return C;
}

void main() {
    int A[2][3] = { 1,1,1,1,1,1 };
    int B[3][3] = {1,2,3,4,5,6,7,8,9};
    int **C;
    C=multiply(A, B, 2, 3, 3);
    for (int i = 0; i < 2; i++)
    {
        for (int j = 0; j < 3; j++)
            cout << C[i][j] << ' ';
        cout << endl;
    }
    system("pause");
}

1

目前还不知道如何将A和B维度字母化传入函数,需要再学习一下二维数组传入函数的方式。
往后再贴一个相应的GPU加速的代码。

你可能感兴趣的:(data,structures,and,algorithms)