c语言编写一个函数完成对3乘3的数组行列转换
时间: 2024-09-25 11:17:22 浏览: 23
在 C 语言中,你可以编写一个函数来完成 3x3 数组从行向量到列向量的转换,或者反之。这里是一个简单的示例,展示如何创建一个名为 `transpose` 的函数来交换矩阵的行和列:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 3
void transpose(int matrix[ROWS][COLS], int result[ROWS][COLS]) {
// 确保输入矩阵的尺寸是正方形
if (ROWS != COLS) {
printf("Error: Matrix must be square.\n");
return;
}
for (int i = 0; i < ROWS; ++i) {
for (int j = 0; j < COLS; ++j) {
// 交换矩阵的行(i)和列(j)
result[j][i] = matrix[i][j];
}
}
}
// 测试函数
int main() {
int matrix[ROWS][COLS] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int transposed[ROWS][COLS];
transpose(matrix, transposed);
// 打印转置后的矩阵
for (int i = 0; i < ROWS; ++i) {
for (int j = 0; j < COLS; ++j) {
printf("%d ", transposed[i][j]);
}
printf("\n");
}
return 0;
}
```
在这个例子中,`transpose` 函数接受一个 3x3 的矩阵 `matrix` 和一个结果矩阵 `result`,然后通过两层循环遍历并交换它们的元素。在主函数中,我们创建了一个测试矩阵,并打印出它的转置。