请写一个C语言的程序:要求对一个二维数组,进行转置
时间: 2024-04-09 19:28:50 浏览: 92
当然,我可以帮你写一个C语言的程序,用于对一个维数组进行转置。下面是一个示程序:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 3
void transpose(int mat[ROWS][COLS], int result[COLS][ROWS]) {
int i, j;
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
result[j][i] = mat[i][j];
}
}
}
void displayMatrix(int mat[ROWS][COLS]) {
int i, j;
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
printf("%d ", mat[i][j]);
}
printf("\n");
}
}
int main() {
int matrix[ROWS][COLS] = {{1, 2, 3},
{4, 5, 6},
{7, 8, 9}};
int transposed[COLS][ROWS];
printf("Original Matrix:\n");
displayMatrix(matrix);
transpose(matrix, transposed);
printf("\nTransposed Matrix:\n");
displayMatrix(transposed);
return 0;
}
```
这个程序定义了一个`transpose`函数,接受一个二维数组和一个结果数组作为参数,将原始矩阵转置后存储在结果数组中。`displayMatrix`函数用于显示矩阵的内容。
在`main`函数中,我们创建了一个3x3的二维数组`matrix`,并将其初始化为一个示例矩阵。然后,我们调用`transpose`函数将其转置,并使用`displayMatrix`函数分别显示原始矩阵和转置后的矩阵。
运行程序,你将得到以下输出:
```
Original Matrix:
1 2 3
4 5 6
7 8 9
Transposed Matrix:
1 4 7
2 5 8
3 6 9
```
希望这个程序能够满足你的需求。如果你有任何其他问题,请随时提问!
阅读全文