实现两个N*N矩阵的乘法,矩阵由一维数组表示
代码如下:
//实现两个N*N矩阵的乘法,矩阵由一维数组表示。
#include<iostream>
using namespace std;
#define size 2
int *multi(int *a, int *b, int N){
int i, j, k, temp;
int *c = (int *)malloc(N*N); //动态内存分配,malloc函数向系统申请分配制定size个字节的内存空间
for (i = 0; i < N; i++){
for (j = 0; j < N; j++){
temp = i*N + j;
*(c + temp) = 0;
for (k = 0; k < N; k++){
*(c + temp) += a[i*N + k] * b[k*N + j];
}
cout << " " << *(c + temp);
}
}
return c;
}
int main(){
int a[size*size] = { 2, 1, 4, 3 };
int b[size*size] = { 1, -1, 3, 2 };
multi(a, b, size);
//int c; cin >> c;
system("pause");
return 0;
}