写一个实现矩阵转置的C代码
时间: 2023-09-26 09:06:54 浏览: 90
### 回答1:
以下是实现矩阵转置的C代码:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 3
void transpose(int matrix[ROWS][COLS]) {
int temp;
for (int i = ; i < ROWS; i++) {
for (int j = i + 1; j < COLS; j++) {
temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
}
int main() {
int matrix[ROWS][COLS] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
printf("Original matrix:\n");
for (int i = ; i < ROWS; i++) {
for (int j = ; j < COLS; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
transpose(matrix);
printf("Transposed matrix:\n");
for (int i = ; i < ROWS; i++) {
for (int j = ; j < COLS; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return ;
}
```
以上是实现矩阵转置的C代码,希望对您有帮助。
### 回答2:
#include <stdio.h>
void transposeMatrix(int matrix[][3], int m, int n) {
int transposedMatrix[n][m]; // 转置后的矩阵
// 进行转置操作
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
transposedMatrix[j][i] = matrix[i][j];
}
}
// 打印转置后的矩阵
printf("转置后的矩阵:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
printf("%d ", transposedMatrix[i][j]);
}
printf("\n");
}
}
int main() {
int matrix[3][3] = {{1, 2, 3},
{4, 5, 6},
{7, 8, 9}};
int m = 3; // 矩阵的行数
int n = 3; // 矩阵的列数
// 原始矩阵
printf("原始矩阵:\n");
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
transposeMatrix(matrix, m, n);
return 0;
}
### 回答3:
矩阵转置是指将一个m×n的矩阵转换为n×m的矩阵,转置后矩阵的行变为原矩阵的列,列变为原矩阵的行。
以下是一个实现矩阵转置的C代码示例:
```
#include <stdio.h>
void transposeMatrix(int matrix[][3], int row, int col) {
int transpose[col][row];
// 执行转置操作
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
transpose[j][i] = matrix[i][j];
}
}
// 输出转置后的矩阵
printf("矩阵转置后的结果:\n");
for (int i = 0; i < col; i++) {
for (int j = 0; j < row; j++) {
printf("%d ", transpose[i][j]);
}
printf("\n");
}
}
int main() {
int matrix[3][3] = {{1, 2, 3},
{4, 5, 6},
{7, 8, 9}};
int row = sizeof(matrix) / sizeof(matrix[0]); // 矩阵的行数
int col = sizeof(matrix[0]) / sizeof(matrix[0][0]); // 矩阵的列数
transposeMatrix(matrix, row, col);
return 0;
}
```
以上代码实现了矩阵转置的功能。通过定义一个新的数组 `transpose` 来存储转置后的矩阵,然后依次将原矩阵的每个元素放到转置矩阵的对应位置,最后输出转置后的矩阵。在 `main` 函数中定义了一个3×3的矩阵作为示例,通过调用 `transposeMatrix` 函数来实现转置操作。最终输出的结果为:
```
矩阵转置后的结果:
1 4 7
2 5 8
3 6 9
```
这就是转置后的矩阵。