C程序交换给定矩阵的对角线元素
问题
我们需要编写代码来交换主对角线元素和副对角线元素。矩阵的大小在运行时给出。
如果矩阵m和n的值不相等,则打印给定矩阵不是方阵。
只有方阵才能交换主对角线元素,并能与副对角线元素交换。
解决方案
编写C程序交换给定矩阵的对角线元素的解决方案如下:
交换对角线元素的逻辑如下所示:
for (i=0;i<m;++i){ a = ma[i][i]; ma[i][i] = ma[i][m-i-1]; ma[i][m-i-1] = a; }
示例
以下是交换给定矩阵的对角线元素的C程序:
#include<stdio.h> main (){ int i,j,m,n,a; static int ma[10][10]; printf ("Enter the order of the matrix m and n
"); scanf ("%dx%d",&m,&n); if (m==n){ printf ("Enter the co-efficients of the matrix
"); for (i=0;i<m;++i){ for (j=0;j<n;++j){ scanf ("%d",&ma[i][j]); } } printf ("The given matrix is
"); for (i=0;i<m;++i){ for (j=0;j<n;++j){ printf (" %d",ma[i][j]); } printf ("
"); } for (i=0;i<m;++i){ a = ma[i][i]; ma[i][i] = ma[i][m-i-1]; ma[i][m-i-1] = a; } printf ("Matrix after changing the
"); printf ("Main & secondary diagonal
"); for (i=0;i<m;++i){ for (j=0;j<n;++j){ printf (" %d",ma[i][j]); } printf ("
"); } } else printf ("The given order is not square matrix
"); }
输出
执行上述程序时,会产生以下结果:
Run 1: Enter the order of the matrix m and n 3x3 Enter the co-efficient of the matrix 1 2 3 4 5 6 7 8 9 The given matrix is 1 2 3 4 5 6 7 8 9 Matrix after changing the Main & secondary diagonal 3 2 1 4 5 6 9 8 7 Run 2: Enter the order of the matrix m and n 4x3 The given order is not square matrix
广告