C语言编写函数实现矩阵的转置
时间: 2024-12-18 20:30:52 浏览: 5
用C语言实现矩阵的转置
在C语言中,矩阵的转置可以通过创建一个新的二维数组并交换原矩阵行和列来完成。下面是一个简单的函数示例,它接受一个行数m和列数n作为参数,以及两个指向整型数组的指针,分别表示原矩阵的行和列元素。
```c
#include <stdio.h>
void transpose(int** original, int m, int n, int** transposed) {
// 确保输入的矩阵有效
if (original == NULL || transposed == NULL) {
printf("Invalid input.\n");
return;
}
// 检查是否可以转置(矩阵维度兼容)
if (m != n) {
printf("Matrix must be square to transpose.\n");
return;
}
// 创建新的转置矩阵
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
transposed[j][i] = original[i][j]; // 交换行和列的位置
}
}
}
// 示例用法
int main() {
int matrix[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
int transposed[3][3];
transpose(matrix, 3, 3, transposed);
// 打印转置后的矩阵
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", transposed[i][j]);
}
printf("\n");
}
return 0;
}
阅读全文