用c++实现主程序中输入矩阵行m,列n,动态分配数组空间,输入矩阵元素值。将二维矩阵作为参数传递给转置函数,返回转置后的二维矩阵 点击复制后,将打开C知道体验页
时间: 2024-05-05 07:18:28 浏览: 80
好的,你想问如何用 C 实现矩阵转置。
首先,我们可以动态分配数组空间来存储矩阵,代码示例如下:
```c
#include <stdio.h>
#include <stdlib.h>
double **create_matrix(int m, int n) {
double **matrix = malloc(m * sizeof(double*));
for (int i = 0; i < m; i++) {
matrix[i] = malloc(n * sizeof(double));
}
return matrix;
}
void free_matrix(double **matrix, int m) {
for (int i = 0; i < m; i++) {
free(matrix[i]);
}
free(matrix);
}
```
其中,`create_matrix` 函数用于动态分配数组空间,`free_matrix` 函数用于释放分配的空间。
接下来是矩阵转置的函数实现:
```c
void transpose(double **matrix, int m, int n) {
double **temp = create_matrix(n, m);
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
temp[i][j] = matrix[j][i];
}
}
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
matrix[i][j] = temp[i][j];
}
}
free_matrix(temp, n);
}
```
以上函数实现了矩阵的转置操作,主函数中可以根据需求输入矩阵的行列数和元素值,并调用 `transpose` 函数来进行矩阵的转置。
阅读全文