用C++语言编写:输入一个2维矩阵,输出这个矩阵的转置矩阵

RT。谢谢各位大侠啦。^_^。... RT。谢谢各位大侠啦。^_^。 展开
 我来答
huifeng00
推荐于2018-04-11 · TA获得超过5233个赞
知道大有可为答主
回答量:808
采纳率:0%
帮助的人:685万
展开全部

#include <iostream>

using namespace std;

int main()

{

   int m,n,i,j;

   int data[100][100];

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

   cout<<"行数:"<<endl;

   cin>>m;

   cout<<"列数:"<<endl;

   cin>>n;

   cout<<"请输入矩阵的元素"<<endl;

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

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

    {

     cin>>data[i][j];

    }

   cout<<"你输入的矩阵为:"<<endl;

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

   {

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

    {

     cout<<data[i][j]<<' ';

    }

    cout<<endl;

   }

   cout<<"你输入的矩阵的转置矩阵为:"<<endl;

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

   {

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

    {

     cout<<data[j][i]<<' ';

    }

    cout<<endl;

   }

   return 0;

}

根据提示输入,可以得到结果

uuihp
2019-09-02
知道答主
回答量:6
采纳率:0%
帮助的人:3142
展开全部

建议你使用eigen库,eigen是一个强大的矩阵运算的库。这是他的官网网页链接。可以做转置,逆,分解等各种运算。网上有很详细的安装教学。在ubuntu,windows都能使用。

简单的介绍eigen下如何定义二维矩阵。

Eigen::Matrix<float,2,2> matrix; //定义一个二维矩阵
matrix << 1,2,3,4 ; //赋值
matrix = matrix.transform(); //调用类内函数,实现转置

同样,eigen还可以进行qr分解,svd分解等。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
北堂一刀
2009-12-06 · 超过55用户采纳过TA的回答
知道小有建树答主
回答量:112
采纳率:0%
帮助的人:86.2万
展开全部
#include<stdio.h>
main()
{
int m,n,i,j;
int a[100][100];

printf("输入行数:");//鉴于你的是二维矩阵,输入的m值应为2
scanf("%d",&m);
printf("输入列数:");
scanf("%d",&n);

for(i=0;i<m;i++)//输入原数组的值,同时获取转置数组的值
for(j=0;j<n;j++){
printf("a[%d][%d]:",i,j);
scanf("%d",&a[j][i]);
}
//输出转置后的数组
for(i=0;i<n;i++){
for(j=0;j<m;j++)
printf("%5d",a[i][j]);
printf("\n");
}

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gnaggnoyil
2009-12-06 · TA获得超过296个赞
知道小有建树答主
回答量:203
采纳率:0%
帮助的人:118万
展开全部
scanf("%d%d",&m,&n);
int a[m][n];
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(int j=0;j<n;j++)
for(int i=0;i<m;i++)
printf("%d ",a[i][j]);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式