记录学习日常 代码可能有错 大家多多包涵 有好的建议提出的话 我会开心接纳 初学阶段
构造一个Matrix类,有一个private的3x3矩阵,和void setMatrix()输入矩阵方法,Matrix mutipleMatrix(Matrix b)矩阵乘法方法,void printMatrix()输出矩阵方法。
输入描述两个3x3的矩阵a,b。
输出描述运用Matrix类的方法输出a和b矩阵相乘的结果。
提示你只需要写出Matrix类即可,主函数已给出//除主函数定义的方法名及参数名外,其余名称或方法可自行添加或修改
class Matrix{
private:
public:
void setMatrix(){
for(int i=0;i<3;++i)
{
}
}
Matrix mutipleMatrix(Matrix b)
{
}
void printMatrix()
{
}
};
int main()
{
Matrix a,b,c;
a.setMatrix();
b.setMatrix();
c=a.mutipleMatrix(b);
c.printMatrix();
return 0;
}
样例输入输出
1 2 3
4 5 6
7 8 9
1 2 3
4 5 6
7 8 9
4 5 6
7 8 9
1 2 3
4 5 6
7 8 9
30 36 42
66 81 96
102 126 150
#include<iostream>
using namespace std;
class Matrix {
private:
int **arr;
public:
Matrix() {
arr = new int *;
for (int i = 0; i <3; i++) {
arr[i] = new int[3];
};
}
void setMatrix() {
for (int i = 0; i < 3; ++i) {
for(int j=0;j<3;j++){
cin>>arr[i][j];
}
}
}
Matrix mutipleMatrix(Matrix b) {
Matrix y; //声明一个暂存数据的矩阵
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
int sum = 0;
for (int k = 0; k < 3; k++) {
sum = sum + arr[i][k] * b.arr[k][j];
}
y.arr[i][j] = sum;
}
}return y;
}
void printMatrix() {
for(int i=0;i<3;i++){
for (int j=0;j<3;j++){
cout<<arr[i][j]<<" ";
}cout<<endl;
}
}
};