Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Chuyển vị ma trận (Transpose Matrix) trong C#

Chuyển vị ma trận lật qua đường chéo chính: hàng thành cột, cột thành hàng.

Ví dụ:

Ma trận trước: 123 456 789
Ma trận sau:   147 258 369

Ví dụ C#

using System;

public class Demo {
    public static void Main() {
        int i, j, m, n;
        int[,] arr1 = new int[30, 30];
        int[,] arr2 = new int[30, 30];
        Console.Write("\nNhập số hàng và cột ma trận:\n");
        Console.Write("Số hàng = ");
        m = Convert.ToInt32(Console.ReadLine());
        Console.Write("Số cột = ");
        n = Convert.ToInt32(Console.ReadLine());
        Console.Write("Nhập các phần tử ma trận...\n");
        for (i = 0; i < m; i++) {
            for (j = 0; j < n; j++) {
                Console.Write("\n [{0}],[{1}] : ", i, j);
                arr1[i, j] = Convert.ToInt32(Console.ReadLine());
            }
        }
        Console.Write("\n\nMa trận trước chuyển vị:\n");
        for (i = 0; i < m; i++) {
            Console.Write("\n");
            for (j = 0; j < n; j++)
                Console.Write("{0}\t", arr1[i, j]);
        }
        for (i = 0; i < m; i++) {
            for (j = 0; j < n; j++) {
                arr2[j, i] = arr1[i, j];
            }
        }
        Console.Write("\n\nMa trận sau chuyển vị: ");
        for (i = 0; i < m; i++) {
            Console.Write("\n");
            for (j = 0; j < n; j++) {
                Console.Write("{0}\t", arr2[i, j]);
            }
        }
        Console.Write("\n\n");
    }
}

Kết quả chạy chương trình (nhập ma trận 3x3):

Ma trận trước: 123 456 789
Ma trận sau:   147 258 369