在线教育网站怎样建设,邯郸做商城网站的公司,网站后台管理生成器,c2c模式的典型代表矩阵的乘法运算 题目输入格式输出格式输入样例输出样例 代码 题目
线性代数中的矩阵可以表示为一个row#xff0a;column的二维数组#xff0c;当row和column均为1时#xff0c;退化为一个数#xff0c;当row为1时#xff0c;为一个行向量#xff0c;当column为1时… 矩阵的乘法运算 题目输入格式输出格式输入样例输出样例 代码 题目
线性代数中的矩阵可以表示为一个rowcolumn的二维数组当row和column均为1时退化为一个数当row为1时为一个行向量当column为1时为一个列向量。 建立一个整数矩阵类matrix其私有数据成员如下
int row;
int column;
int **mat;建立该整数矩阵类matrix构造函数 建立一个 *乘号的运算符重载以便于对两个输入矩阵进行乘法运算 建立输出函数void display()对整数矩阵按行进行列对齐输出格式化输出语句如下
coutsetw(10)mat[i][j];
//需要include iomanip主函数里定义三个整数矩阵类对象m1、m2、m3. 、
输入格式
分别输入两个矩阵分别为整数矩阵类对象m1和m2。 每个矩阵输入如下 第一行两个整数 r c分别给出矩阵的行数和列数 接下来输入r行对应整数矩阵的每一行 每行输入c个整数对应当前行的c个列元素
输出格式
整数矩阵按行进行列对齐宽度为10后输出 判断m1和m2是否可以执行矩阵相乘运算。 若可以执行m3m1*m2运算之后调用display函数对m3进行输出。 若不可以输出Invalid Matrix multiplication! 提示输入或输出的整数矩阵保证满足row1和column1。
输入样例
4 5
1 0 0 0 5
0 2 0 0 0
0 0 3 0 0
0 0 0 4 0
5 5
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 8 9
5 6 7 8 9输出样例 26 32 38 44 504 6 8 10 129 12 15 18 2116 20 24 32 36代码
#include iostream
#include iomanip
using namespace std;
class matrix{
private:int row,column;int **mat;
public:matrix(const matrix mx){this-rowmx.row;this-columnmx.column;this-matnew int*[row];for (int i 0; i row ; i) {this-mat[i]new int[column];for (int j 0; j column ; j) {this-mat[i][j]mx.mat[i][j];}}}matrix(int r,int c){rowr;columnc;matnew int*[row];for (int i 0; i row ; i) {mat[i]new int[column];for (int j 0; j column ; j) {mat[i][j]0;}}}~matrix(){for (int i 0; i row ; i) {delete []mat[i];}delete []mat;}void read(){for (int j 0; j row ; j) {for (int i 0; i column ; i) {cinmat[j][i];}}}matrix operator*(matrix mt){if(this-row1this-column1){for (int i 0; i mt.row; i) {for (int j 0; j mt.column ; j) {mt.mat[i][j]this-mat[0][0]*mt.mat[i][j];}}return mt;}else{matrix rs(this-row,mt.column);for (int i 0; i this-row; i) {for (int j 0; j mt.column ; j) {for (int k 0; k mt.row ; k) {rs.mat[i][j]this-mat[i][k]*mt.mat[k][j];}}}return rs;}}void display(){for (int i 0; i row ; i) {for (int j 0; j column ; j) {coutsetw(10)mat[i][j];}coutendl;}}
};
int main()
{int r,c;cinrc;matrix m1(r,c);m1.read();int r1,c1;cinr1c1;matrix m2(r1,c1);m2.read();if(cr1||r1c1){matrix m3m1*m2;m3.display();}else{coutInvalid Matrix multiplication!;}return 0;
}