矩阵是相同数据类型元素的集合。矩阵可以定义为数组的数组,这意味着元素以行和列的格式排列。我们可以通过它们的索引(位置值)访问矩阵中的元素。
矩阵的对角线表示矩阵中对角线上的元素。也就是说,从左上角到右下角的元素,其中矩阵元素的行号和列号相等。例如,下面所示矩阵的对角线元素是“1,5,9”和“3,5,7”

在这个 C 语言程序中,我们需要互换一个方阵的对角线——一个行数和列数相等的矩阵。互换对角线将交换对角线上的元素。此 C 语言程序中使用的逻辑是交换矩阵元素的位置以获得所需的结果。

第一步,我们接受矩阵的阶数到 m 和 n。然后我们必须检查“m”和“n”是否相等。也就是说,矩阵的行数和列数是否相等。如果相等,它就是一个方阵,所以我们将读取矩阵的元素并显示它们,然后我们使用 for 循环互换对角线元素,并显示互换后的矩阵。如果“m”和“n”不相等,那么我们将显示矩阵的阶数不是一个方阵。
步骤 1:包含头文件以使用内置函数。
步骤 2:声明整数变量 i, j, m, n, val, 和矩阵 ma[][]。
步骤 3:将矩阵的阶数读取到“m”和“n”中。
步骤 4:然后检查 m = n,如果为真则执行步骤 5。否则显示给定的阶数不是方阵。
步骤 5:使用嵌套的 for 循环(条件为 i<m 和 j<n)从用户读取矩阵的系数,并将数字保存到 ma[i][j] 中。
步骤 6:使用另一个嵌套的 for 循环显示给定矩阵。
步骤 7:使用一个 for 循环,条件为 i<m,执行步骤 8
步骤 8:按照以下方式交换对角线上的元素,
步骤 9:使用嵌套的 for 循环显示互换对角线后的矩阵元素 ma[i][j]。
要互换矩阵的对角线,我们必须使用以下 C 语言主题,请参考这些主题以获得更好的理解
#include <stdio.h>
void main() {
static int ma[10][10];
int i, j, m, n, val;
printf("Enter the order of the matrix \n");
scanf("%d %d", & m, & n);
if (m == n) {
printf("Enter the elements of the matrix\n");
for (i = 0; i < m; ++i) {
for (j = 0; j < n; ++j) {
scanf("%d", & ma[i][j]);
}
}
printf("The given matrix is \n"); /* prints the input matrix */
for (i = 0; i < m; ++i) {
for (j = 0; j < n; ++j) {
printf(" %d", ma[i][j]);
}
printf("\n");
}
for (i = 0; i < m; ++i) {
val = ma[i][i];
ma[i][i] = ma[i][m - i - 1]; /* interchanging the elements of diagonals inside a matrix */
ma[i][m - i - 1] = val;
}
printf("The matrix after changing the diagonals\n");
for (i = 0; i < m; ++i) {
for (j = 0; j < n; ++j) {
printf(" %d", ma[i][j]); /* displaying the output matrix */
}
printf("\n");
}
} else
printf("The given order is not of a square matrix\n");
} /* end of main() */
Enter the order of the matrix 3 3 Enter the elements 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 The matrix after changing the diagonals 3 2 1 4 5 6 9 8 7