Index « Previous Next »

Question

If we interchange the rows and columns of a matrix, then this new matrix is known as the transpose of the given matrix. Write a program to find the transpose of matrix of size m x n.

Source Code

#include <stdio.h>

int main()
{
    int matrix[10][10], transpose[10][10];
    int i, j, m, n;

    printf("Enter number of rows : ");
    scanf("%d", &m);
    printf("Enter number of columns : ");
    scanf("%d", &n);

    /* Input data in matrix */
    printf("\nEnter the elements of matrix\n");
    for (i = 0; i < m; i++)
    {
        for (j = 0; j < n; j++)
        {
            printf("Enter data in [%d][%d]: ", i, j);
            scanf("%d", &matrix[i][j]);
        }
    }

    /* Display the matrix */
    printf("\n");
    for (i = 0; i < m; i++)
    {
        for (j = 0; j < n; j++)
        {
            printf("%d\t", matrix[i][j]);
        }
        printf("\n");
    }

    /* Transpose of the matrix */
    for (i = 0; i < m; i++)
    {
        for (j = 0; j < n; j++)
        {
            transpose[j][i] = matrix[i][j];
        }
    }

    printf("\nTranspose matrix\n");

    for (i = 0; i < n; i++)
    {
        for (j = 0; j < m; j++)
        {
            printf("%d\t", transpose[i][j]);
        }
        printf("\n");
    }

    return 0;
}

Output

Enter number of rows : 2
Enter number of columns : 3

Enter the elements of matrix
Enter data in [0][0]: 10
Enter data in [0][1]: 20
Enter data in [0][2]: 30
Enter data in [1][0]: 40
Enter data in [1][1]: 50
Enter data in [1][2]: 60

10     20     30
40     50     60

Transpose matrix
10     40
20     50
30     60