编写一函数,将一个3×3矩阵转置,即行列互换。要求在主函数中输入原矩阵,输出转置后的矩阵。请按以上要求写代码c语言
时间: 2024-02-27 16:55:51 浏览: 66
好的,以下是C语言实现:
```c
#include <stdio.h>
void transpose(int mat[3][3]);
int main() {
int mat[3][3];
printf("请输入矩阵元素:\n");
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
scanf("%d", &mat[i][j]);
}
}
transpose(mat);
printf("转置后的矩阵为:\n");
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
printf("%d ", mat[i][j]);
}
printf("\n");
}
return 0;
}
void transpose(int mat[3][3]) {
int temp;
for(int i = 0; i < 3; i++) {
for(int j = i + 1; j < 3; j++) {
temp = mat[i][j];
mat[i][j] = mat[j][i];
mat[j][i] = temp;
}
}
}
```
这里的 `transpose` 函数实现了矩阵的转置,原理是对于矩阵中的每个元素,其在转置后的位置就是其原来的列号和行号互换。在 `main` 函数中我们先输入原矩阵,然后调用 `transpose` 函数将其转置,最后输出转置后的矩阵。
阅读全文