请用C语言编写如下程序:设计一个子函数,将任意n×n的矩阵转置,并在主函数中调用此函数将一个4×4的矩阵转置。
时间: 2023-06-26 16:08:18 浏览: 221
C语言程序设计-编写程序,实现矩阵(3行3列)的转置(即行列互换) .c
5星 · 资源好评率100%
下面是这个程序的代码:
```c
#include <stdio.h>
void transpose(int n, int matrix[][n]) {
int i, j, temp;
for (i = 0; i < n; i++) {
for (j = i + 1; j < n; j++) {
temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
}
int main() {
int i, j;
int matrix[4][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16}
};
printf("Original matrix:\n");
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
printf("%d\t", matrix[i][j]);
}
printf("\n");
}
transpose(4, matrix);
printf("Transposed matrix:\n");
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
printf("%d\t", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
程序中定义了一个名为 `transpose` 的子函数,用来将任意 n×n 的矩阵转置。它接收两个参数:矩阵的维度 n 和一个二维数组 matrix,表示要转置的矩阵。函数中使用了两个循环来遍历矩阵,交换每个元素的位置,从而实现矩阵转置的功能。
在主函数中,先定义了一个 4×4 的矩阵 `matrix`,并将其输出。然后调用 `transpose` 函数来将矩阵转置,并再次输出转置后的矩阵。
阅读全文