用c++指针代码写出,输入一个3x3矩阵,实现矩阵转置
时间: 2024-05-05 12:18:55 浏览: 97
C/C++实现矩阵的转置(示例代码)
好的,可以使用以下 C 语言代码实现矩阵转置:
```
#include <stdio.h>
void transpose(int *mat, int rows, int cols) {
int transposed[cols][rows];
int i, j;
for (i = 0; i < rows; i++) {
for (j = 0; j < cols; j++) {
transposed[j][i] = *(mat + i*cols + j);
}
}
printf("The transposed matrix is:\n");
for (i = 0; i < cols; i++) {
for (j = 0; j < rows; j++) {
printf("%d ", transposed[i][j]);
}
printf("\n");
}
}
int main() {
int rows = 3, cols = 3;
int mat[rows][cols];
int i, j;
printf("Enter the elements of the matrix:\n");
for (i = 0; i < rows; i++) {
for (j = 0; j < cols; j++) {
scanf("%d", &mat[i][j]);
}
}
printf("The original matrix is:\n");
for (i = 0; i < rows; i++) {
for (j = 0; j < cols; j++) {
printf("%d ", mat[i][j]);
}
printf("\n");
}
transpose(&mat[0][0], rows, cols);
return 0;
}
```
在这里,我们首先定义了一个 `transpose` 函数来实现矩阵转置。该函数接受矩阵的指针以及矩阵的行数和列数作为参数。然后我们创建了一个 `transposed` 数组来保存转置后的矩阵。接下来,我们使用两个循环来遍历原始矩阵,将元素复制到转置后的矩阵中。最后,我们使用循环打印出转置后的矩阵。
在 `main` 函数中,我们声明了一个 3x3 的矩阵和两个循环变量 `i` 和 `j`。然后,我们先打印出原始矩阵,再将其指针作为参数传递给 `transpose` 函数来得到转置后的矩阵。
阅读全文