在这个 C 语言程序中,我们需要计算输入矩阵的**转置**。矩阵的转置意味着我们需要将所有行中的元素更改为列,并将所有列中的元素更改为行。转置是由 Clayey 在 1858 年引入的。
例如,我们假设一个矩阵为 **[1 2 3]**,当我们计算该矩阵的转置时,它应该像这样。
[1 2 3]
这意味着我们必须互换行和列。
在这里,我们接受用户输入的矩阵。我们更改元素的顺序。我们将行转换为列,将列转换为行。最后,我们以矩阵格式分别显示输入的矩阵和输出矩阵。
这个程序的逻辑是首先从用户那里读取矩阵的阶数。接受用户输入的元素,并使用嵌套的 `for 循环`将其添加到矩阵中。之后显示矩阵,然后通过更改矩阵 'A' 的元素位置来找出矩阵 'b' 的转置。 "A[j][i] = B[i][j]。" 之后,我们使用嵌套的 `for 循环`显示转置矩阵。
第一步: 包含头文件,以便在C程序中使用内置函数。
步骤 2:在 C 语言程序中初始化并定义矩阵和要使用的变量。
步骤 3:使用 C 语言编程中的 `printf` 和 `scanf` 函数接受**矩阵 A** 的阶数。
步骤 4:使用嵌套的 `for 循环`和 `scanf` 函数接受**矩阵 A** 的元素。
步骤 5:使用嵌套的 `for 循环`和 `printf` 函数显示**矩阵 A**。
步骤 6:使用嵌套的 `for 循环`查找矩阵的转置,并将 **B[i][j]=A[j][i]**,其中 'B' 是转置矩阵。
步骤 7:使用 C 语言中的嵌套 `for 循环`和 `printf` 函数显示转置矩阵 'B'。
#include <stdio.h>
void main()
{
int i, j, M, N;
int A[10][10], B[10][10];
printf("Enter the order of matrix A\n");
scanf("%d %d", & M, & N);
printf("Enter the elements of matrix\n"); /* enters the order of matrix with the values for each position of the matrix */
for (i = 0; i < M; i++) {
for (j = 0; j < N; j++) {
scanf("%d", & A[i][j]);
}
}
printf("The given matrix is \n"); /* just prints the matrix as such */
for (i = 0; i < M; ++i) {
for (j = 0; j < N; ++j) {
printf(" %d", A[i][j]);
}
printf("\n");
}
/* Finding Transpose of matrix*/
for (i = 0; i < M; i++) {
for (j = 0; j < N; j++) {
B[i][j] = A[j][i]; /* changing the elements of A matrix as per we discussed above */
}
}
printf("Its Transpose is\n");
for (i = 0; i < M; i++) {
for (j = 0; j < N; j++) {
printf(" %d", B[i][j]); /* finally printing the result matrix */
}
printf("\n");
}
} /*End of main()*/
Enter the order of matrix A 3 3 Enter the elements of matrix 1 2 3 4 5 6 7 8 9 Matrix A is 1 2 3 4 5 6 7 8 9 Its Transpose is 1 4 7 2 5 8 3 6 9