c语言矩阵转置代码
以下是一个用C语言实现矩阵转置的代码示例:
#include <stdio.h>
#define ROWS 3
#define COLS 3
void transposeMatrix(int matrix[ROWS][COLS], int result[COLS][ROWS]) {
int i, j;
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
result[j][i] = matrix[i][j];
}
}
}
void printMatrix(int matrix[ROWS][COLS]) {
int i, j;
for (i = 0; i < ROWS; i++) {
for (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 result[COLS][ROWS];
printf("原始矩阵:\n");
printMatrix(matrix);
transposeMatrix(matrix, result);
printf("转置矩阵:\n");
printMatrix(result);
return 0;
}
这个代码示例中,我们定义了一个transposeMatrix
函数来实现矩阵转置操作。该函数接受一个输入矩阵和一个输出矩阵作为参数,并将输入矩阵的转置结果存储在输出矩阵中。
在main
函数中,我们定义了一个3x3的矩阵matrix
,并调用transposeMatrix
函数将其转置存储在result
矩阵中。然后,我们使用printMatrix
函数分别打印原始矩阵和转置矩阵的内容。
运行该代码,输出结果如下:
原始矩阵:
1 2 3
4 5 6
7 8 9
转置矩阵:
1 4 7
2 5 8
3 6 9
可以看到,原始矩阵的行变成了转置矩阵的列,转置矩阵的行变成了原始矩阵的列。
当然,我可以继续为您。
矩阵转置是指将矩阵的行和列互换位置,即将矩阵的第i行转置为第i列,第j列转置为第j行。在C语言中,可以使用双重循环来实现矩阵转置操作。
在上面的代码示例中,transposeMatrix
函数使用两个嵌套的循环来遍历输入矩阵的所有元素。对于每个元素,它将其值复制到输出矩阵的对应位置,即将输入矩阵的第i行第j列的元素复制到输出矩阵的第j行第i列的位置。
printMatrix
函数用于打印矩阵的内容。它使用两个嵌套的循环来遍历矩阵的所有元素,并使用printf
函数将每个元素打印出来。在每行的末尾,它使用printf
函数打印一个换行符,以确保每行的元素都打印在一行上。
在main
函数中,我们首先定义了一个3x3的矩阵matrix
,并初始化其元素的值。然后,我们定义了一个与输入矩阵大小相反的输出矩阵result
。接下来,我们调用transposeMatrix
函数将输入矩阵转置,并将结果存储在输出矩阵中。最后,我们使用printMatrix
函数分别打印原始矩阵和转置矩阵的内容。
希望这次的回答能够满足您的需求。如果您还有其他问题,请随时提问。