Programa en C para encontrar la transpuesta de una matriz

Programa en C para encontrar la transpuesta de una matriz

Escriba un programa en C para leer elementos en una matriz y encontrar la transposición de la matriz dada. Cómo encontrar la transposición de una matriz dada en C. Lógica para encontrar la transposición de una matriz en programación C.

Ejemplo

Entrada

Input elements in matrix: 
1 2 3
4 5 6
7 8 9

Salida

Transpose: 
1 4 7
2 5 8
3 6 9

Conocimiento requerido

Programación básica en C, For loop, Array

Transpuesta de una matriz

Transpuesta de una matriz A se define como convertir todas las filas en columnas y columnas en filas. Transpuesta de la matriz A se escribe como A T .

Transpuesta de una matriz A se define como -
A T ij =A ji ; Donde 1 ≤ i ≤ m y 1 ≤ j ≤ n

Lógica para encontrar la transpuesta de una matriz

A continuación se muestra la lógica descriptiva paso a paso para encontrar la transpuesta de una matriz.

  1. Ingrese elementos en la matriz A del usuario.
  2. Declare otra matriz del mismo tamaño que A, para almacenar la transposición de la matriz digamos B.
  3. Para iterar a través de cada elemento de la matriz, ejecute dos bucles. Ejecute un ciclo externo de 0 a MAX_ROWS para recorrer las filas. La estructura del ciclo debería verse como for(fila=0; fila
  4. Para iterar a través de cada columna de la matriz, ejecute un ciclo interno de 0 a MAX_COLS. La estructura del ciclo debe parecerse a for(col=0; col
  5. Dentro del bucle interno, realizaremos la transposición real de la matriz. Según la definición, la columna de la matriz transpuesta es igual a la fila de la matriz original y viceversa. Significa asignar B[columna][fila] =A[fila][columna].

Programa para encontrar la transpuesta de una matriz

/**
 * C program to find transpose of a matrix
 */

#include <stdio.h>
#define MAX_ROWS 3
#define MAX_COLS 3

int main()
{
    int A[MAX_ROWS][MAX_COLS];  // Original matrix
    int B[MAX_COLS][MAX_ROWS];  // Transpose matrix

    int row, col;

    /* Input elements in matrix A from user */
    printf("Enter elements in matrix of size %dx%d: \n", MAX_ROWS, MAX_COLS);
    for(row=0; row<MAX_ROWS; row++)
    {
        for(col=0; col<MAX_COLS; col++)
        {
            scanf("%d", &A[row][col]);
        }
    }

    /*
     * Find transpose of matrix A
     */
    for(row=0; row<MAX_ROWS; row++)
    {
        for(col=0; col<MAX_COLS; col++)
        {
            /* Store each row of matrix A to each column of matrix B */
            B[col][row] = A[row][col];
        }
    }
    
    /* Print the original matrix A */ 
    printf("\nOriginal matrix: \n");
    for(row=0; row<MAX_ROWS; row++)
    {
        for(col=0; col<MAX_COLS; col++)
        {
            printf("%d ", A[row][col]);
        }

        printf("\n");
    }
    
    /* Print the transpose of matrix A */
    printf("Transpose of matrix A: \n");
    for(row=0; row<MAX_COLS; row++)
    {
        for(col=0; col<MAX_ROWS; col++)
        {
            printf("%d ", B[row][col]);
        }

        printf("\n");
    }

    return 0;
}

Salida

Enter elements in matrix of size 3x3:
1 2 3
4 5 6
7 8 9

Original matrix:
1 2 3
4 5 6
7 8 9
Transpose of matrix A:
1 4 7
2 5 8
3 6 9

Feliz codificación 😉

Publicaciones recomendadas

  • Índice de ejercicios de programación de matrices y arreglos.
  • Programa en C para encontrar el determinante de una matriz.
  • Programa en C para verificar la matriz de identidad.
  • Programa en C para comprobar la matriz simétrica.
  • Programa en C para comprobar la matriz dispersa.
  • Programa en C para encontrar la suma de los elementos de la diagonal principal de una matriz.
  • Programa en C para encontrar la suma de los elementos diagonales opuestos de una matriz.