• C/C++语言100题练习计划 94——矩阵转置(线性代数)


    名人说:博学之,审问之,慎思之,明辨之,笃行之。——《中庸》
    进度:C/C++语言100题练习计划专栏,目前94/100

    1.问题描述

    Problem Description

    输入一个 n n n m m m 列的矩阵 A A A,输出它的转置 A T A^T AT

    2.输入输出

    Input

    第一行包含两个整数 n n n m m m,表示矩阵 A A A 的行数和列数。 1 ≤ n ≤ 100 1 \le n \le 100 1n100 1 ≤ m ≤ 100 1 \le m \le 100 1m100

    接下来 n n n 行,每行 m m m 个整数,表示矩阵 A A A 的元素。相邻两个整数之间用单个空格隔开,每个元素均在 1 ∼ 1000 1 \sim 1000 11000 之间。

    Output

    n n n 行,每行 m m m 个整数,表示矩阵加法的结果。相邻两个整数之间用单个空格隔开。

    3.测试样例

    Sample Input

    3 3
    1 2 3
    4 5 6
    7 8 9
    

    Sample Output

    1 4 7
    2 5 8
    3 6 9
    

    二、源码实现

    #include
    using namespace std;
    const int maxn = 101;
    int n, m, a[maxn][maxn];
    
    int main() 
    {
    	//输入矩阵的行数n和列数m
        cin>>n>>m;
        //输入矩阵a
        for(int i = 1; i <= n; i++)
        {
    		for(int j = 1; j <= m; j++) 
    		{
    			cin>>a[i][j];
    		}
    	}
    	//输出"转置"后的矩阵a
        for(int j = 1; j <= m; j++) 
        {
    		for(int i = 1; i <= n; i++)
    		{
    			cout<<a[i][j]<<" ";
    		}
    		cout<<endl;
    	}
    		 
        return 0;
    }
    

    ★关于本题思路及举例

    1、本题思路简述

    假设这里有个 n×m 的矩阵 A,然后我们将第 i 行第 j 列的元素变成新矩阵中的第 j 行第 i 列的元素,所得到的新的 m×n 矩阵就是我们的转置矩阵。
    但是在本题中,根据题意,我们只需要输出这个转置矩阵就可以了,因此并不需要真的转置,只需要先循环 j 再循环 i 输出就可以达到转置的效果了。

    2、举例

    在这里插入图片描述

    三、测试结果

    3 3
    1 2 3
    4 5 6
    7 8 9
    1 4 7
    2 5 8
    3 6 9
    
    --------------------------------
    Process exited after 1.423 seconds with return value 0
    请按任意键继续. . .
    
    

    Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder)
    如果对大家有帮助的话,希望大家能多多点赞+关注!这样我动力会更足哦! ღ( ´・ᴗ・` )比心

  • 相关阅读:
    MindSpore能把两个实数组合成复数的操作算子么
    CAS:295348-87-7_AF594 NHS 活化酯_ Alexa Fluor 594 NHS ester
    java基于ssm的考试辅导网站
    L63.linux命令每日一练 -- 第九章 Linux进程管理命令 -- runlevel、init和service
    Mybatis 常见面试题
    SpringBoot开发使用篇
    提升数据安全的五大原则
    OpenGL ES glew 下载和使用
    NestJS入门6:日志中间件
    Linux网络编程(一)
  • 原文地址:https://blog.csdn.net/qq_51646682/article/details/126950193