矩阵转置        ‌‍‎‏

矩阵转置

      • C语言代码
      • C++ 语言代码
      • Java语言代码
      • Python语言代码

|-----------------------------|
| 💐The Begin💐点点关注,收藏不迷路💐 |

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

输入

第一行包含两个整数n和m,表示矩阵A的行数和列数。1 <= n <= 100,1 <= m <= 100。

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

输出

m行,每行n个整数,为矩阵A的转置。相邻两个整数之间用单个空格隔开。

样例输入

c 复制代码
3 3
1 2 3
4 5 6
7 8 9

样例输出

c 复制代码
1 4 7
2 5 8
3 6 9

先获取矩阵的行数和列数,接着读取原矩阵的元素内容,然后按照矩阵转置的规则(即将原矩阵的行元素变为转置矩阵的列元素,原矩阵的列元素变为转置矩阵的行元素)来构建转置矩阵,最后按照要求的格式输出转置后的矩阵。

C语言代码

c 复制代码
#include <stdio.h>

int main() {
    int n, m;
    scanf("%d %d", &n, &m);  // 读取矩阵的行数n和列数m

    int matrix[n][m];  // 定义二维数组存储原矩阵元素
    int transpose[m][n];  // 定义二维数组存储转置后的矩阵元素

    // 1. 读取原矩阵元素
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            scanf("%d", &matrix[i][j]);  // 逐行逐列读取原矩阵元素
        }
    }

    // 2. 进行矩阵转置操作,将原矩阵元素赋值到转置矩阵对应位置
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            transpose[j][i] = matrix[i][j];  // 原矩阵的第i行第j列元素赋值到转置矩阵的第j行第i列
        }
    }

    // 3. 输出转置后的矩阵
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            printf("%d ", transpose[i][j]);  // 逐行逐列输出转置矩阵元素
        }
        printf("\n");
    }

    return 0;
}

C++ 语言代码

cpp 复制代码
#include <iostream>
using namespace std;

int main() {
    int n, m;
    cin >> n >> m;  // 输入矩阵的行数n和列数m

    int matrix[n][m];  // 创建二维数组存储原矩阵元素
    int transpose[m][n];  // 创建二维数组存储转置后的矩阵元素

    // 1. 输入原矩阵元素
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            cin >> matrix[i][j];  // 逐行逐列输入原矩阵元素
        }
    }

    // 2. 执行矩阵转置,把原矩阵元素按规则赋给转置矩阵
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            transpose[j][i] = matrix[i][j];  // 原矩阵的第i行第j列元素给到转置矩阵的第j行第i列
        }
    }

    // 3. 输出转置后的矩阵
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            cout << transpose[i][j] << " ";  // 逐行逐列输出转置矩阵元素
        }
        cout << endl;
    }

    return 0;
}

Java语言代码

java 复制代码
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();  // 获取矩阵的行数n
        int m = scanner.nextInt();  // 获取矩阵的列数m

        int[][] matrix = new int[n][m];  // 定义二维数组存储原矩阵元素
        int[][] transpose = new int[m][n];  // 定义二维数组存储转置后的矩阵元素

        // 1. 读取原矩阵元素
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                matrix[i][j] = scanner.nextInt();  // 逐行逐列读取原矩阵元素并存入数组
            }
        }

        // 2. 进行矩阵转置,将原矩阵元素按对应位置赋给转置矩阵
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                transpose[j][i] = matrix[i][j];  // 原矩阵的第i行第j列元素赋值到转置矩阵的第j行第i列
            }
        }

        // 3. 输出转置后的矩阵
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                System.out.print(transpose[i][j] + " ");  // 逐行逐列输出转置矩阵元素
            }
            System.out.println();
        }
    }
}

Python语言代码

python 复制代码
n, m = map(int, input().split())  # 获取输入矩阵的行数n和列数m
matrix = [list(map(int, input().split())) for _ in range(n)]  # 获取原矩阵元素,构建二维列表

transpose = [[matrix[j][i] for j in range(n)] for i in range(m)]  # 使用列表推导式进行矩阵转置操作

# 输出转置后的矩阵
for row in transpose:
    print(" ".join(map(str, row)))  # 将每行的整数列表转换为字符串,用空格连接后输出

|---------------------------|
| 💐The End💐点点关注,收藏不迷路💐 |

相关推荐
TIF星空1 小时前
【使用 C# 获取 USB 设备信息及进行通信】
开发语言·经验分享·笔记·学习·microsoft·c#
Smile丶凉轩3 小时前
Qt 界面优化(绘图)
开发语言·数据库·c++·qt
reasonsummer3 小时前
【办公类-100-01】20250515手机导出教学照片,自动上传csdn+最大化、最小化Vs界面
开发语言·python
S01d13r4 小时前
LeetCode 解题思路 48(编辑距离、只出现一次的数字)
算法·leetcode·职场和发展
C_Liu_4 小时前
C语言:深入理解指针(5)
java·c语言·算法
small_wh1te_coder4 小时前
从经典力扣题发掘DFS与记忆化搜索的本质 -从矩阵最长递增路径入手 一步步探究dfs思维优化与编程深度思考
c语言·数据结构·c++·stm32·算法·leetcode·深度优先
枫景Maple4 小时前
LeetCode 45. 跳跃游戏 II(中等)
算法·leetcode
এ᭄画画的北北4 小时前
力扣-236.二叉树的最近公共祖先
算法·leetcode
苏三福5 小时前
ros2 hunmle bag 数据包转为图片数据 python版
开发语言·python·ros2humble
Magnum Lehar5 小时前
3d游戏引擎的math矩阵实现
线性代数·矩阵·游戏引擎