给定一个n×m矩阵相乘,求它的转置。其中1≤n≤20,1≤m≤20,矩阵中的每个元素都在整数类型(4字节)的表示范围内。用c语言编程
时间: 2024-10-15 09:27:27 浏览: 29
在C语言中,如果你需要计算一个n行m列的矩阵的转置,首先你需要创建一个新的矩阵,其大小为m行n列,因为转置后的矩阵会变成之前行和列的角色互换。这里是一个基本的步骤:
```c
#include <stdio.h>
// 定义一个函数,接受原矩阵和转置矩阵的指针
void transpose(int A[20][20], int B[20][20]) {
for (int i = 0; i < n; i++) { // 遍历原矩阵的每一行
for (int j = 0; j < m; j++) { // 遍历原矩阵的每一列(对应新矩阵的行)
B[j][i] = A[i][j]; // 将原矩阵的元素复制到转置矩阵相应的位置
}
}
}
int main() {
int n, m;
printf("Enter the number of rows (n) and columns (m): ");
scanf("%d %d", &n, &m);
if (n > 20 || m > 20) {
printf("Matrix dimensions are too large!\n");
return 0;
}
// 初始化原矩阵A和转置矩阵B
int A[20][20], B[20][20];
// ... (在这里填充原矩阵A的数据)
transpose(A, B); // 调用transpose函数进行转置
// 打印转置矩阵B
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", B[i][j]);
}
printf("\n");
}
return 0;
}
```
阅读全文