Write a C program to Swap diagonals elements of a matrix

By | 18.11.2016

Swap diagonals elements of a matrix


Write a C program to Swap diagonals elements of a matrix. Here’s simple Program to interchange elements of primary and secondary diagonals of matrix in C Programming Language.


What is Matrix ?


Matrix representation is a method used by a computer language to store matrices of more than one dimension in memory. C uses “Row Major”, which stores all the elements for a given row contiguously in memory.

Two-dimensional Arrays : :

The simplest form of multidimensional array is the two-dimensional array. A two-dimensional array is, in essence, a list of one-dimensional arrays. An m × n (read as m by n) order matrix is a set of numbers arranged in m rows and n columns.

To declare a two-dimensional integer array of size [x][y], you would write something as follows −

  • type arrayName [ x ][ y ];

Where type can be any valid C data type and arrayName will be a valid C identifier.


Below is the source code for C program to Swap diagonals elements of a matrix which is successfully compiled and run on Windows System to produce desired output as shown below :


SOURCE CODE : :


/*  C program to Swap diagonals elements of a matrix  */

#include <stdio.h>

int main()
{
    int A[10][10],i,j,m,n;
    int row, col, square, temp;

    printf("Enter no. of rows :: ");
        scanf("%d", &m);
        printf("\nEnter no. of cols :: ");
        scanf("%d",&n);
        printf("\nEnter values to the matrix :: \n");
        for (i = 0; i < m; i++)
        {
            for (j = 0; j < n; j++)
            {
                 printf("\nEnter a[%d][%d] value :: ",i,j);
                 scanf("%d", &A[i][j]);
        }
    }

    printf("\nThe given matrix is :: \n\n");

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

    square = (m < n) ? m : n;

    /*
     * Interchanges diagonal of the matrix
     */
    for(row=0; row < square; row++)
    {
        col = row;

        temp = A[row][col];
        A[row][col] = A[row][(square - col)-1];
        A[row][(square - col)-1] = temp;
    }

    /*
     * Prints the interchanged diagonals matrix
     */
    printf("\nMatrix after diagonals interchanged: \n");
    for (i = 0; i < m; ++i)
        {
            for (j = 0; j < n; ++j)
            {
                printf("\t%d", A[i][j]);
            }
            printf("\n\n");
        }

    return 0;
}

Output : :


/*  C program to Swap diagonals elements of a matrix  */

Enter no. of rows :: 3

Enter no. of cols :: 3

Enter values to the matrix ::

Enter a[0][0] value :: 1

Enter a[0][1] value :: 2

Enter a[0][2] value :: 3

Enter a[1][0] value :: 4

Enter a[1][1] value :: 5

Enter a[1][2] value :: 6

Enter a[2][0] value :: 7

Enter a[2][1] value :: 8

Enter a[2][2] value :: 9

The given matrix is ::

        1       2       3

        4       5       6

        7       8       9


Matrix after diagonals interchanged:
        3       2       1

        4       5       6

        9       8       7


Process returned 0

Above is the source code for C program to Swap diagonals elements of a matrix which is successfully compiled and run on Windows System.The Output of the program is shown above .

If you found any error or any queries related to the above program or any questions or reviews , you wanna to ask from us ,you may Contact Us through our contact Page or you can also comment below in the comment section.We will try our best to reach up to you in short interval.


Thanks for reading the post….

0 0 votes
Article Rating
Category: C Programming Matrix Programs Tags:

About Tunde A

My name is Tunde Ajetomobi, a Tech Enthusiast and Growth Hacker. I enjoy creating helpful content that solves problem across different topics. Codezclub is my way of helping young aspiring programmers and students to hone their skills and find solutions on fundamental programming languages.

Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments