怎样编写一个矩阵转置的函数,矩阵的行、列数在程序中由用户输入!【紧急需要,】
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/07 18:41:47
怎样编写一个矩阵转置的函数,矩阵的行、列数在程序中由用户输入!【紧急需要,】
用C++语言编写:
#include <iostream.h>
class Matrix
{
private:
\x05int row,colomn;
public:
\x05double **matrix;
static Matrix transpos(const Matrix&);
\x05Matrix(int Mrow,int Mcol)
\x05{
\x05\x05row=Mrow;
\x05\x05colomn=Mcol;
\x05\x05matrix=new double* [row];
\x05\x05for(int i=0;i<row;i++)
\x05\x05{
\x05\x05\x05matrix[i]=new double[colomn];
\x05\x05}
\x05\x05/*.
动态分配数组,并初始化为0;
.*/
\x05\x05for(i=0;i<row;i++)
\x05\x05{
\x05\x05\x05for(int j=0;j<colomn;j++)
\x05\x05\x05{
\x05\x05\x05\x05matrix[i][j]=0;
\x05\x05\x05}
\x05\x05}
\x05}
\x05Matrix(const Matrix& a)
\x05{
\x05\x05row=a.row;
\x05\x05colomn=a.colomn;
\x05\x05matrix=new double* [row];
\x05\x05for(int i=0;i<row;i++)
\x05\x05{
\x05\x05\x05matrix[i]=new double[colomn];
\x05\x05}
\x05\x05//
\x05\x05for(i=0;i<row;i++)
\x05\x05{
\x05\x05\x05for(int j=0;j<colomn;j++)
\x05\x05\x05{
\x05\x05\x05\x05matrix[i][j]=a.matrix[i][j];
\x05\x05\x05}
\x05\x05}
\x05}
\x05~Matrix()
\x05{
\x05\x05for(int i=0;i<row;i++)
\x05\x05{
\x05\x05\x05delete[] matrix[i];
\x05\x05}
\x05\x05delete[] matrix;
\x05}
Matrix Matrix::transpos(const Matrix& m1) //在类的外部定义static的函数就不需要指定static
{
\x05Matrix temp(m1);
\x05for(int i=0;i<m1.colomn;i++)
\x05{
\x05\x05for(int j=0;j<m1.row;j++)
\x05\x05{
\x05\x05\x05temp.matrix[i][j]=m1.matrix[j][i];
\x05\x05}
\x05}
\x05return temp;
}
void main()
{\x05cout<<"请输入矩阵的行列数:"<<endl;
\x05int inputrow,inputcol;
\x05cin>>inputrow>>inputcol;
\x05Matrix a(inputrow,inputcol);
\x05int i,j;
\x05cout<<"请输入a矩阵的值"<<endl;
\x05for(i=0;i<inputrow;i++)
\x05\x05for(j=0;j<inputcol;j++)
\x05\x05\x05cin>>a.matrix[i][j];
\x05Matrix c(inputrow,inputcol);
\x05c=Matrix::transpos(a);
\x05cout<<"c矩阵为:"<<endl;
\x05for(i=0;i<inputrow;i++)
\x05\x05for(j=0;j<inputcol;j++)
\x05\x05\x05cout<<c.matrix[i][j]<<endl;
}
再问: 你这个是在哪里运行的???我的是vc6的!
再答: 哦,是在VC 6.0中啊,你的是什么问题? 我知道了,掉了一个 };你把它加在析构函数的外面,表示内的声明结束。
再问: 就是有个是unexpected end of file found 另一个是:member function already defined or declared
再答: 我知道了,加个 }; 程序如下: #include 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
#include <iostream.h>
class Matrix
{
private:
\x05int row,colomn;
public:
\x05double **matrix;
static Matrix transpos(const Matrix&);
\x05Matrix(int Mrow,int Mcol)
\x05{
\x05\x05row=Mrow;
\x05\x05colomn=Mcol;
\x05\x05matrix=new double* [row];
\x05\x05for(int i=0;i<row;i++)
\x05\x05{
\x05\x05\x05matrix[i]=new double[colomn];
\x05\x05}
\x05\x05/*.
动态分配数组,并初始化为0;
.*/
\x05\x05for(i=0;i<row;i++)
\x05\x05{
\x05\x05\x05for(int j=0;j<colomn;j++)
\x05\x05\x05{
\x05\x05\x05\x05matrix[i][j]=0;
\x05\x05\x05}
\x05\x05}
\x05}
\x05Matrix(const Matrix& a)
\x05{
\x05\x05row=a.row;
\x05\x05colomn=a.colomn;
\x05\x05matrix=new double* [row];
\x05\x05for(int i=0;i<row;i++)
\x05\x05{
\x05\x05\x05matrix[i]=new double[colomn];
\x05\x05}
\x05\x05//
\x05\x05for(i=0;i<row;i++)
\x05\x05{
\x05\x05\x05for(int j=0;j<colomn;j++)
\x05\x05\x05{
\x05\x05\x05\x05matrix[i][j]=a.matrix[i][j];
\x05\x05\x05}
\x05\x05}
\x05}
\x05~Matrix()
\x05{
\x05\x05for(int i=0;i<row;i++)
\x05\x05{
\x05\x05\x05delete[] matrix[i];
\x05\x05}
\x05\x05delete[] matrix;
\x05}
Matrix Matrix::transpos(const Matrix& m1) //在类的外部定义static的函数就不需要指定static
{
\x05Matrix temp(m1);
\x05for(int i=0;i<m1.colomn;i++)
\x05{
\x05\x05for(int j=0;j<m1.row;j++)
\x05\x05{
\x05\x05\x05temp.matrix[i][j]=m1.matrix[j][i];
\x05\x05}
\x05}
\x05return temp;
}
void main()
{\x05cout<<"请输入矩阵的行列数:"<<endl;
\x05int inputrow,inputcol;
\x05cin>>inputrow>>inputcol;
\x05Matrix a(inputrow,inputcol);
\x05int i,j;
\x05cout<<"请输入a矩阵的值"<<endl;
\x05for(i=0;i<inputrow;i++)
\x05\x05for(j=0;j<inputcol;j++)
\x05\x05\x05cin>>a.matrix[i][j];
\x05Matrix c(inputrow,inputcol);
\x05c=Matrix::transpos(a);
\x05cout<<"c矩阵为:"<<endl;
\x05for(i=0;i<inputrow;i++)
\x05\x05for(j=0;j<inputcol;j++)
\x05\x05\x05cout<<c.matrix[i][j]<<endl;
}
再问: 你这个是在哪里运行的???我的是vc6的!
再答: 哦,是在VC 6.0中啊,你的是什么问题? 我知道了,掉了一个 };你把它加在析构函数的外面,表示内的声明结束。
再问: 就是有个是unexpected end of file found 另一个是:member function already defined or declared
再答: 我知道了,加个 }; 程序如下: #include 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
怎样编写一个矩阵转置的函数,矩阵的行、列数在程序中由用户输入!【紧急需要,】
用C++编写一个矩阵转置的函数,矩阵的行数列数由用户输入
C语言实验题,编写两个矩阵相加减的程序,两矩阵的行列数均由用户输入(两矩阵的行列数要限制最大值),在屏幕上分行列打印出结
矩阵乘法计算编写一个函数实现矩阵A(2行3列)与矩阵B相乘(3行2列),乘积放在C数组中,在主函数中输入相乘的两数组,并
编写一个函数程序,获取任意尺寸矩阵(输入参数) 中最大元素所在的行号和列号(输出参数)(用循 环语
编写程序:输入一个3×3的矩阵,求矩阵中所有元素之和,并找出其中最小的那个元素的行号和列号.
输入一个3行4列矩阵,输出该矩阵的转置矩阵.
怎样在公式编辑器中输入一个4行4列的矩阵,
给出一个5行5列的矩阵,数值由用户输入;求出这个矩阵的鞍点(如果有的话)
输入一个M行M列的矩阵A,计算B=A+A’,即将矩阵A加上A的转置,存放在矩阵B中.M由下
设计程序,利用循环和函数,输入一个10行10列的矩阵,并要求打印出它的内容.(1)设计Input函数输入矩阵
求VB解答.编写程序,实现矩阵转置,即将一个nⅹm的矩阵的行和列互换.