帮我写一段c语言代码,实现矩阵转置
时间: 2023-09-17 20:06:02 浏览: 137
### 回答1:
#include <stdio.h>
int main()
{
int r, c, a[100][100], transpose[100][100];
printf("输入矩阵的行数和列数 \n");
scanf("%d %d", &r, &c);
printf("输入矩阵元素 \n");
for (int i = 0; i < r; ++i)
for (int j = 0; j < c; ++j)
scanf("%d", &a[i][j]);
printf("输入矩阵: \n");
for (int i = 0; i < r; ++i)
for (int j = 0; j < c; ++j)
printf("%d ", a[i][j]);
//转置矩阵
for (int i = 0; i < r; ++i)
for (int j = 0; j < c; ++j)
transpose[j][i] = a[i][j];
printf("转置矩阵: \n");
for (int i = 0; i < c; ++i)
for (int j = 0; j < r; ++j)
printf("%d ", transpose[i][j]);
return 0;
}
### 回答2:
矩阵转置是指将一个矩阵的行和列互换得到一个新的矩阵。下面是一个简单的C语言代码示例,可以实现矩阵转置:
```c
#include <stdio.h>
// 定义最大矩阵的大小
#define MAX_SIZE 100
// 矩阵转置函数
void transposeMatrix(int matrix[MAX_SIZE][MAX_SIZE], int rows, int cols) {
int i, j;
int transposedMatrix[MAX_SIZE][MAX_SIZE];
// 将矩阵的行和列互换
for (i = 0; i < rows; i++) {
for (j = 0; j < cols; j++) {
transposedMatrix[j][i] = matrix[i][j];
}
}
// 打印转置后的矩阵
printf("转置后的矩阵:\n");
for (i = 0; i < cols; i++) {
for (j = 0; j < rows; j++) {
printf("%d ", transposedMatrix[i][j]);
}
printf("\n");
}
}
int main() {
int i, j;
int matrix[MAX_SIZE][MAX_SIZE];
int rows, cols;
printf("请输入矩阵的行数和列数(空格分开):");
scanf("%d %d", &rows, &cols);
printf("请输入矩阵的元素:\n");
for (i = 0; i < rows; i++) {
for (j = 0; j < cols; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 调用矩阵转置函数
transposeMatrix(matrix, rows, cols);
return 0;
}
```
运行程序后,首先输入矩阵的行数和列数,然后按顺序输入矩阵的元素。程序将会输出转置后的矩阵。请注意,输入的矩阵大小不能超过定义的最大矩阵大小(MAX_SIZE),可以根据实际情况进行调整。
### 回答3:
矩阵转置是将矩阵的行与列调换,得到新的矩阵。下面是一个使用C语言实现矩阵转置的例子:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 3
void transposeMatrix(int matrix[ROWS][COLS], int transposedMatrix[COLS][ROWS]) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
transposedMatrix[j][i] = matrix[i][j];
}
}
}
void printMatrix(int matrix[ROWS][COLS]) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
int main() {
int matrix[ROWS][COLS] = {{1, 2, 3},
{4, 5, 6},
{7, 8, 9}};
int transposedMatrix[COLS][ROWS];
transposeMatrix(matrix, transposedMatrix);
printf("原始矩阵:\n");
printMatrix(matrix);
printf("\n转置后的矩阵:\n");
printMatrix(transposedMatrix);
return 0;
}
```
本例中,我们使用了两个函数。`transposeMatrix`函数接受一个二维数组`matrix`和一个空的二维数组`transposedMatrix`作为参数,通过嵌套的循环将矩阵的行与列调换,并将结果存储到`transposedMatrix`中。`printMatrix`函数用于打印矩阵。在`main`函数中,我们定义了一个原始矩阵`matrix`,然后调用`transposeMatrix`函数进行转置,并使用`printMatrix`函数打印原始矩阵和转置后的矩阵。
以上就是使用C语言实现矩阵转置的代码。希望对你有帮助。
阅读全文