一维数组和二维数组矩阵乘法

来源:互联网 发布:一刻馆桌游 淘宝 编辑:程序博客网 时间:2024/06/05 22:36
#include <iostream>using namespace std;int c[3][2]={0};int d[6]={0};//二维数组存储矩阵乘法void multi(int a[3][3], int b[3][2]){for (int i=0;i<3;i++)//i代表a矩阵的行数{for (int j=0;j<2;j++)//j代表b矩阵的列数{for (int k=0;k<3;k++)//k代表a矩阵的列数和b数组的行数{c[i][j]+=a[i][k]*b[k][j];}}}}//一维数组存储矩阵乘法void multi2(int a[9], int b[6]){for (int i=0;i<3;i++)//i代表a矩阵的行数{for (int j=0;j<2;j++)//j代表b矩阵的列数{for (int k=0;k<3;k++)//k代表a矩阵的列数和b数组的行数{//一个矩阵用一维数组存储时(假设该矩阵为m*n的),则//a[i][j]在这个一维数组中的位置为array[n*i+j]d[2*i+j]+=a[3*i+k]*b[2*k+j];}}}}int main(){//使用一维数组进行矩阵乘法运算int a1[9]={1,1,1,2,2,2,3,3,3};int b1[6]={1,2,3,4,5,6};//for (int i=0;i<6;i++)//d[i]=0;multi2(a1,b1);for (int i=0;i<6;i++)cout << d[i] << " ";cout << endl;//使用二维数组进行矩阵乘法运算int a2[3][3]={{1,1,1,},{2,2,2},{3,3,3}};int b2[3][2]={{1,2},{3,4},{5,6}};//for (int i=0;i<3;i++)//{//for (int j=0;j<2;j++)//c[i][j]=0;//}multi(a2,b2);for (int i=0;i<3;i++){for (int j=0;j<2;j++)cout << c[i][j] <<" ";cout << endl;}return 0;}

0 0
原创粉丝点击