#include<stdlib.h>
#include "iostream"
using namespace std;
class matrix{
int lines;
int rows;
public:
int **p;
void get_maxnature();
void input_mat();
void printf_mat();
matrix(int lines,int rows);
~matrix();
};
/*得到数组的行数与列数*/
void matrix::get_maxnature(){
int X,Y;
cout<<"Please input the matrix*s lines and rows."<<endl;
cin>>X>>Y;
lines=X;
rows=Y;
};
/*自行申请内存*/
matrix::matrix(int lines=2,int rows=2){
p=new int*[lines];
for(int i=0;i<lines;i++)
p[i]= new int[rows];
};
/*输入数组*/
void matrix::input_mat(){
cout<<"Please input one "<<lines<<"*"<<rows<<" matrix"<<endl;
for(int i=0;i<lines;i++)
for(int j=0;j<rows;j++)
cin>>p[i][j];
};
/*打印数组*/
void matrix::printf_mat(){
for(int i=0;i<lines;i++)
{
for(int j=0;j<rows;j++)
cout<<p[i][j]<<" ";
cout<<endl;
}
};
/*析构函数*/
matrix::~matrix(){
delete []p;
};
void add_matrix(matrix A,matrix B,matrix C)
{
for(int i=0;i<4;i++)
for(int j=0;j<5;j++)
C.p[i][j]=A.p[i][j]+B.p[i][j];
}
void sub_matrix(matrix A,matrix B,matrix C)
{
for(int i=0;i<4;i++)
for(int j=0;j<5;j++)
C.p[i][j]=A.p[i][j]-B.p[i][j];
}
main()
{
matrix A1,A2,A3;
A1.get_maxnature();//输入A1的行,列
A1.input_mat();//输入A1的元素
A2.get_maxnature();//输入A2的行和列
A2.input_mat();//输入A2的元素
A3.get_maxnature();//输入A3 的行列
add_matrix(A1,A2,A3);//在函数中把A2+A1赋值给A3
A3.printf_mat();//打印A3
system("pause");
return 0;
}
其实思路就是,建立矩阵这个类,然后定义A1,A2,A3,A3=A1+A2,输出A3,但是,在为A3申请内存的时候,就会出错,就是想不通,如果出错,为什么为A1,A2申请的时候就不出错
#include "iostream"
using namespace std;
class matrix{
int lines;
int rows;
public:
int **p;
void get_maxnature();
void input_mat();
void printf_mat();
matrix(int lines,int rows);
~matrix();
};
/*得到数组的行数与列数*/
void matrix::get_maxnature(){
int X,Y;
cout<<"Please input the matrix*s lines and rows."<<endl;
cin>>X>>Y;
lines=X;
rows=Y;
};
/*自行申请内存*/
matrix::matrix(int lines=2,int rows=2){
p=new int*[lines];
for(int i=0;i<lines;i++)
p[i]= new int[rows];
};
/*输入数组*/
void matrix::input_mat(){
cout<<"Please input one "<<lines<<"*"<<rows<<" matrix"<<endl;
for(int i=0;i<lines;i++)
for(int j=0;j<rows;j++)
cin>>p[i][j];
};
/*打印数组*/
void matrix::printf_mat(){
for(int i=0;i<lines;i++)
{
for(int j=0;j<rows;j++)
cout<<p[i][j]<<" ";
cout<<endl;
}
};
/*析构函数*/
matrix::~matrix(){
delete []p;
};
void add_matrix(matrix A,matrix B,matrix C)
{
for(int i=0;i<4;i++)
for(int j=0;j<5;j++)
C.p[i][j]=A.p[i][j]+B.p[i][j];
}
void sub_matrix(matrix A,matrix B,matrix C)
{
for(int i=0;i<4;i++)
for(int j=0;j<5;j++)
C.p[i][j]=A.p[i][j]-B.p[i][j];
}
main()
{
matrix A1,A2,A3;
A1.get_maxnature();//输入A1的行,列
A1.input_mat();//输入A1的元素
A2.get_maxnature();//输入A2的行和列
A2.input_mat();//输入A2的元素
A3.get_maxnature();//输入A3 的行列
add_matrix(A1,A2,A3);//在函数中把A2+A1赋值给A3
A3.printf_mat();//打印A3
system("pause");
return 0;
}
其实思路就是,建立矩阵这个类,然后定义A1,A2,A3,A3=A1+A2,输出A3,但是,在为A3申请内存的时候,就会出错,就是想不通,如果出错,为什么为A1,A2申请的时候就不出错