将一个3×3的矩阵转置,在主函数中用scanf函数输入以下矩阵元素,将数组名作为函数实参,在执行函数的过程中实现矩阵转置,函数调用结束后在主函数输出已转置的矩阵
时间: 2024-03-09 18:44:52 浏览: 79
C#实现矩阵转置的方法
好的,可以使用下面的代码来实现矩阵转置的功能:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 3
void transpose(int mat[][COLS]) {
int i, j, temp;
for (i = 0; i < ROWS; i++) {
for (j = i+1; j < COLS; j++) {
temp = mat[i][j];
mat[i][j] = mat[j][i];
mat[j][i] = temp;
}
}
}
int main() {
int mat[ROWS][COLS];
int i, j;
// 用scanf函数输入矩阵元素
printf("请输入3x3矩阵的元素:\n");
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
scanf("%d", &mat[i][j]);
}
}
// 调用转置函数
transpose(mat);
// 输出已转置的矩阵
printf("转置后的矩阵为:\n");
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
printf("%d ", mat[i][j]);
}
printf("\n");
}
return 0;
}
```
在这个代码中,我们定义了一个`transpose`函数来实现矩阵转置,在主函数中使用`scanf`函数输入矩阵元素,然后将数组名作为实参传递给`transpose`函数,执行转置操作后再在主函数中输出已转置的矩阵。注意在`transpose`函数中用到了一个临时变量`temp`来完成元素交换的操作。
阅读全文