怎样编写一个矩阵转置的函数,矩阵的行、列数在程序中由用户输入!!【紧急需要,求高手啊!】

需要原创的啊!!... 需要原创的啊!! 展开
 我来答
Geomaticsyr
推荐于2017-12-16 · TA获得超过341个赞
知道小有建树答主
回答量:131
采纳率:0%
帮助的人:160万
展开全部

原创程序,用C++语言编写:

#include <iostream.h>

class Matrix

{

private:

int row,colomn;

public:

double **matrix;

                static Matrix transpos(const Matrix&);

Matrix(int Mrow,int Mcol)

{

row=Mrow;

colomn=Mcol;

matrix=new double* [row];

for(int i=0;i<row;i++)

{

matrix[i]=new double[colomn];

}

/*................................................

            动态分配数组,并初始化为0;

         ...................................................*/                                            

for(i=0;i<row;i++)

{

for(int j=0;j<colomn;j++)

{

matrix[i][j]=0;

}

}

}

Matrix(const Matrix& a)

{

row=a.row;

colomn=a.colomn;

matrix=new double* [row];

for(int i=0;i<row;i++)

{

matrix[i]=new double[colomn];

}

/**********************************/

/*初始化为a.matrix*/

/**********************************/

for(i=0;i<row;i++)

{

for(int j=0;j<colomn;j++)

{

matrix[i][j]=a.matrix[i][j];

}

}

}

~Matrix()

{

for(int i=0;i<row;i++)

{

delete[] matrix[i];

}

delete[] matrix;

}

Matrix Matrix::transpos(const Matrix& m1)                 //在类的外部定义static的函数就不需要指定static

{

Matrix temp(m1);

for(int i=0;i<m1.colomn;i++)

{

for(int j=0;j<m1.row;j++)

{

temp.matrix[i][j]=m1.matrix[j][i];

}

}

return temp;

}

void main()

{ cout<<"请输入矩阵的行列数:"<<endl;

int inputrow,inputcol;

cin>>inputrow>>inputcol;

Matrix a(inputrow,inputcol);

int i,j;

cout<<"请输入a矩阵的值"<<endl;

for(i=0;i<inputrow;i++)

for(j=0;j<inputcol;j++)

cin>>a.matrix[i][j];

Matrix c(inputrow,inputcol);

c=Matrix::transpos(a);

cout<<"c矩阵为:"<<endl;

for(i=0;i<inputrow;i++)

for(j=0;j<inputcol;j++)

cout<<c.matrix[i][j]<<endl;

}

更多追问追答
追问
你这个是在哪里运行的???我的是vc6的!
追答
哦,是在VC 6.0中啊,你的是什么问题?
我知道了,掉了一个 };你把它加在析构函数的外面,表示内的声明结束。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式