看板 YP90-304 關於我們 聯絡資訊
這是林柏出的問題,但以下是一個可自訂大小的矩陣,對其運算子作覆載 #include<iostream.h> class matrix { private: int n,m,*p; public: matrix(); matrix(const matrix&); void input(); void input(matrix); void out(); matrix same(matrix&); matrix operator +(matrix&); matrix operator *(matrix&); }; matrix::matrix(){} matrix::matrix(const matrix& nm) { n=nm.n; m=nm.m; p=new int[nm.n*nm.m]; for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { p[m*i+j]=nm.p[nm.m*i+j]; } } } void matrix::input() { cout<<"n="; cin>>n; cout<<"m="; cin>>m; cout<<endl; p=new int[n*m]; *this=same(*this); } void matrix::input(matrix nm) { n=nm.n; m=nm.m; p=new int[n*m]; cout<<"n="<<nm.n<<endl; cout<<"m="<<nm.m<<endl; cout<<endl; *this=same(nm); } matrix matrix::same(matrix &s) { for(int i=0;i<s.n;i++) { for(int j=0;j<s.m;j++) { cout<<"("<<i+1<<","<<j+1<<")="; cin>>s.p[s.m*i+j]; } } return s; } void matrix::out() { for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { cout<<p[m*i+j]<<" "; } cout<<endl; } cout<<endl; cout<<"--------------------------------------------------------"<<endl; } matrix matrix::operator +(matrix &nm) { matrix c; c.n=n; c.m=m; c.p=new int[n*m]; for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { c.p[c.m*i+j]=p[m*i+j]+nm.p[nm.m*i+j]; } } return c; } matrix matrix::operator *(matrix &nm) { matrix f; //n*l f.n=n; f.m=nm.m; f.p=new int[n*nm.m]; for(int a=0;a<n*nm.m;a++) { f.p[a]=0; } for(int i=0;i<n;i++) { for(int j=0;j<nm.m;j++) { for(int k=0;k<nm.n;k++) { f.p[f.m*i+j]+=p[m*i+k]*nm.p[nm.m*k+j]; } } } return f; } void main() { matrix A,B,C,D,F; cout<<"Please enter matrix A(n*m):"<<endl; A.input(); //n*m cout<<"Please enter matrix B(A.n*A.m):"<<endl; B.input(A); //n*m cout<<'\n'<<"C=A+B"<<endl; C=A+B; cout<<"Please enter matrix D(A.m*l):(n=A.m!,別輸入錯誤)"<<endl; D.input(); cout<<'\n'<<"F=A*D"<<endl; F=A*D; //F is n*l cout<<"--------------------------------------------------------"<<endl; cout<<"A="<<endl; A.out(); cout<<"B="<<endl; B.out(); cout<<"C="<<endl; C.out(); cout<<"D="<<endl; D.out(); cout<<"F="<<endl; F.out(); } 我要問你會不會把矩陣內的元素都宣告成complex型態,然後對其運算子覆載 ㄏㄏㄏ 一個complex物件集合成任一大小的矩陣 wonba~~~~~~ 我知道你一定不會的拉~~~~~~~~~~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.231.48.52