矩阵的转置c++

题目描述

KiKi有一个矩阵,他想知道转置后的矩阵(将矩阵的行列互换得到的新矩阵称为转置矩阵),请编程帮他解答。

输入描述:

 

第一行包含两个整数n和m,表示一个矩阵包含n行m列,用空格分隔。 (1≤n≤10,1≤m≤10)

从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第一个矩阵中的元素。

输出描述:

输出m行n列,为矩阵转置后的结果。每个数后面有一个空格。

代码

#include <iostream>
using namespace std;
int main()
{
    int x,y;
    cin>>x>>y;
    int i,j,a[x][y];
    for(i=0;i<x;i++)
    {
        for(j=0;j<y;j++)
        {cin>>a[i][j];}
    }
    for(j=0;j<y;j++)
    {
        for(i=0;i<x;i++)
        {
            cout<<a[i][j];
            if(i<x-1)cout<<" ";
        }
        if(j<y-1)
        cout<<endl;
    }
    return 0;
}

这段代码用于实现一个矩阵的转置操作。

首先,代码通过cin流读取输入的矩阵的行数和列数,分别存储在变量x和y中。

然后,代码定义了一个二维数组a[x][y]来存储矩阵的元素。

接下来,通过两个嵌套的for循环,分别遍历矩阵的行和列,使用cin流读取每个元素,并将其保存在数组a中。

然后,通过另外两个嵌套的for循环,分别遍历矩阵的列和行,并使用cout流输出数组a中的元素。这里注意到输出时行列互换的关系,即先输出矩阵的第一列元素,再输出矩阵的第二列元素,以此类推。在输出每个元素之后,根据当前的行数和列数判断是否需要输出空格。

最后,为了满足转置矩阵的格式要求,当内层循环结束时,即一列的元素都输出完毕后,根据当前的列数判断是否需要输出换行符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值