零基础学c++(矩阵相乘)

来源:互联网 发布:淘宝直通车的定向推广 编辑:程序博客网 时间:2024/05/03 12:17
<span style="font-size:18px;">#include<iostream>#include<iomanip>using namespace std;int a[3][4] = { { 5, 7, 8, 2 },{ -2, 4, 1, 1 },{ 1, 2, 3, 4 } };int b[4][5] = { { 4, -2, 3, 3, 9 },{ 4, 3, 8, -1, 2 },{ 2, 3, 5, 2, 7 },{ 1, 0, 6, 3, 4 } };int c[3][5];int MultiMatrix(int a[][4], int arow, int acol,int b[][5], int brow, int bcol,int c[][5], int crow, int ccol);     //函数声明void main(){if (MultiMatrix(a, 3, 4, b, 4, 5, c, 3, 5)){cout << "illegal matrix multipy.\n";return;}for (int i = 0; i < 3; i++)          //输出矩阵乘法的结果{for (int j = 0; j < 5; j++)cout << setw(5) << c[i][j];cout << endl;}}int MultiMatrix(int a[][4], int arow, int acol,int b[][5], int brow, int bcol,int c[][5], int crow, int ccol){if (acol != brow)                  //正确性查询                return 1;if (crow != arow)return 1;if (bcol != ccol)return 1;for (int i = 0; i < crow; i++)     //行for (int j = 0; j < ccol; j++)     //列{c[i][j] = 0;                     //此处可省略,因为c是全局数组,默认值为全0for (int n = 0; n < acol; n++)   //求一个元素c[i][j] += a[i][n] * b[n][j];}return 0;}</span>

      该程序先定义两个全局数组,然后调用矩阵乘法函数,对应的,矩阵乘法函数的参数是三个二维数组表示的矩阵,分别有两个行列式。

      矩阵乘法函数中,先对行列值进行校验,不符要求返回出错信息。

1 0
原创粉丝点击