C语言,用一个函数实现将n×n的矩阵转置,在主函数中调用函数实现矩阵转置,并调用函数输出转置后的矩阵。
时间: 2024-05-13 21:14:03 浏览: 134
可以用以下函数实现矩阵转置:
```c
#include <stdio.h>
void transpose(int mat[][100], int n) {
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
// 交换 mat[i][j] 和 mat[j][i]
int temp = mat[i][j];
mat[i][j] = mat[j][i];
mat[j][i] = temp;
}
}
}
int main() {
int n;
printf("请输入矩阵的维数 n:");
scanf("%d", &n);
int mat[100][100];
printf("请输入 %d × %d 的矩阵:\n", n, n);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &mat[i][j]);
}
}
transpose(mat, n);
printf("矩阵转置后的结果是:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", mat[i][j]);
}
printf("\n");
}
return 0;
}
```
在上面的代码中,`transpose` 函数接收一个二维数组 `mat` 和一个整数 `n`,表示矩阵的维数。函数使用两个循环遍历矩阵的上三角元素,并将每个元素与对应的下三角元素交换。这样,矩阵就被转置了。
在 `main` 函数中,我们首先读入矩阵的维数和元素,然后调用 `transpose` 函数,最后输出转置后的矩阵。
阅读全文