原文: https://www.programiz.com/c-programming/examples/matrix-transpose

在此示例中,您将学习在 C 编程中查找矩阵的转置。

要理解此示例,您应该了解以下 C 编程主题:


矩阵的转置是通过交换行和列而获得的新矩阵。

在该程序中,要求用户输入行数r和列数c。 在此程序中,它们的值应小于 10。

然后,要求用户输入矩阵的元素(顺序为r*c)。

然后,下面的程序计算矩阵的转置并将其打印在屏幕上。


查找矩阵转置的程序

  1. #include <stdio.h>
  2. int main() {
  3. int a[10][10], transpose[10][10], r, c, i, j;
  4. printf("Enter rows and columns: ");
  5. scanf("%d %d", &r, &c);
  6. // Assigning elements to the matrix
  7. printf("\nEnter matrix elements:\n");
  8. for (i = 0; i < r; ++i)
  9. for (j = 0; j < c; ++j) {
  10. printf("Enter element a%d%d: ", i + 1, j + 1);
  11. scanf("%d", &a[i][j]);
  12. }
  13. // Displaying the matrix a[][]
  14. printf("\nEntered matrix: \n");
  15. for (i = 0; i < r; ++i)
  16. for (j = 0; j < c; ++j) {
  17. printf("%d ", a[i][j]);
  18. if (j == c - 1)
  19. printf("\n");
  20. }
  21. // Finding the transpose of matrix a
  22. for (i = 0; i < r; ++i)
  23. for (j = 0; j < c; ++j) {
  24. transpose[j][i] = a[i][j];
  25. }
  26. // Displaying the transpose of matrix a
  27. printf("\nTranspose of the matrix:\n");
  28. for (i = 0; i < c; ++i)
  29. for (j = 0; j < r; ++j) {
  30. printf("%d ", transpose[i][j]);
  31. if (j == r - 1)
  32. printf("\n");
  33. }
  34. return 0;
  35. }

输出

  1. Enter rows and columns: 2
  2. 3
  3. Enter matrix elements:
  4. Enter element a11: 1
  5. Enter element a12: 4
  6. Enter element a13: 0
  7. Enter element a21: -5
  8. Enter element a22: 2
  9. Enter element a23: 7
  10. Entered matrix:
  11. 1 4 0
  12. -5 2 7
  13. Transpose of the matrix:
  14. 1 -5
  15. 4 2
  16. 0 7