C 程序交换给定矩阵中的对角线元素
cserver side programmingprogramming更新于 2024/11/9 14:53:00
问题
我们需要编写代码来交换主对角线元素与次对角线元素。矩阵的大小在运行时给出。
如果矩阵 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 ("请输入矩阵m和n的阶
"); scanf ("%dx%d",&m,&n); if (m==n){ printf ("请输入矩阵的系数
"); for (i=0;i<m;++i){ for (j=0;j<n;++j){ scanf ("%d",&ma[i][j]); } } printf ("给定的矩阵是
"); 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 ("改变后的矩阵
"); printf ("主对角线和次对角线
"); for (i=0;i<m;++i){ for (j=0;j<n;++j){ printf (" %d",ma[i][j]); } printf("
"); } } else printf("给定的阶数不是方阵
"); }
输出
当执行上述程序时,它会产生以下结果 −
运行 1: 输入矩阵 m 和 n 的阶数 3x3 输入矩阵的系数 1 2 3 4 5 6 7 8 9 给定的矩阵是 1 2 3 4 5 6 7 8 9 改变后的矩阵 主要及次对角线 3 2 1 4 5 6 9 8 7 运行 2: 输入矩阵 m 和 n 的阶 4x3 给定的阶不是方阵