题目是创3*3矩阵类(9个数或者二维数组实现),并用重载 "+"、 "-"运算符实现矩阵加减法
疑惑是为什么我用scanf加循环输入数据后结果成这样
#include <iostream>
using namespace std;
class Matrix {
public:
double data[3][3]; // 存储矩阵元素的二维数组
// 默认构造函数,初始化所有元素为0
Matrix() {
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
data[i][j] = 0.0;
}
}
}
// 重载"+"运算符
Matrix operator+(const Matrix& other) const {
Matrix result;
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
result.data[i][j] = data[i][j] + other.data[i][j];
}
}
return result;
}
// 重载"-"运算符
Matrix operator-(const Matrix& other) const {
Matrix result;
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
result.data[i][j] = data[i][j] - other.data[i][j];
}
}
return result;
}
// 打印矩阵的成员函数
void print() const {
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
cout << data[i][j] << " ";
}
cout << endl;
}
}
};
int main() {
Matrix m1, m2, sum, difference;
printf("请输入数据");
for(int i=0;i<3;i++)
{
for(int t=0;t<3;t++)
{
scanf("%d",&m1.data[i][t]);
}
}
printf("请输入数据");
for(int i=0;i<3;i++)
{
for(int t=0;t<3;t++)
{
scanf("%d",&m2.data[i][t]);
}
}
// 计算矩阵和差
sum = m1 + m2;
difference = m1 - m2;
// 打印结果
cout << "Sum of m1 and m2:" << endl;
sum.print();
cout << "Difference of m1 and m2:" << endl;
difference.print();
return 0;
}