编写函数void funint (*tp)[N),tp指向一个M行N列的矩阵,该函数的功能是求矩阵的转置矩阵。所谓转置矩阵是指该矩阵的行为原矩阵的列,该矩阵的列为原矩阵的行。矩阵中的数在主函数中给出。
时间: 2023-12-03 12:02:07 浏览: 39
以下是函数void funint (*tp)[N)的实现:
```c
void fun(int (*tp)[N], int M, int N) {
// 定义临时变量
int temp;
// 对角线上的元素不需要交换,所以只需要遍历上三角或下三角
for (int i = 0; i < M; i++) {
for (int j = i + 1; j < N; j++) {
// 交换矩阵中对应位置的元素
temp = tp[i][j];
tp[i][j] = tp[j][i];
tp[j][i] = temp;
}
}
}
```
在主函数中,可以按以下方式调用该函数:
```c
#include <stdio.h>
#define M 2
#define N 3
int main() {
int matrix[M][N] = {{1, 2, 3}, {4, 5, 6}};
// 输出原矩阵
printf("Original matrix:\n");
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
// 求转置矩阵
fun(matrix, M, N);
// 输出转置矩阵
printf("Transposed matrix:\n");
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
输出结果如下:
```
Original matrix:
1 2 3
4 5 6
Transposed matrix:
1 4
2 5
3 6
```