编写程序, 实现矩阵(3行3列)的转置c
时间: 2024-04-20 21:27:34 浏览: 100
下面是实现矩阵转置的 C 语言代码:
```c
#include <stdio.h>
int main()
{
int matrix[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int i, j;
printf("原矩阵:\n");
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
printf("转置后的矩阵:\n");
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
printf("%d ", matrix[j][i]);
}
printf("\n");
}
return 0;
}
```
运行结果:
```
原矩阵:
1 2 3
4 5 6
7 8 9
转置后的矩阵:
1 4 7
2 5 8
3 6 9
```
其中,`matrix` 是一个 3 行 3 列的矩阵,使用嵌套的 for 循环遍历每个元素,并输出原矩阵和转置后的矩阵。转置矩阵的第 i 行第 j 列元素等于原矩阵的第 j 行第 i 列元素。
相关问题
编写c语言程序, 实现矩阵(3行3列)的转置(即行列互换)
以下是C语言程序实现矩阵(3行3列)的转置:
```c
#include <stdio.h>
int main() {
int matrix[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; // 定义一个3行3列的矩阵
printf("原矩阵:\n");
for(int i=0; i<3; i++) {
for(int j=0; j<3; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
// 矩阵转置
for(int i=0; i<3; i++) {
for(int j=i+1; j<3; j++) {
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
printf("转置后的矩阵:\n");
for(int i=0; i<3; i++) {
for(int j=0; j<3; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
运行结果为:
```
原矩阵:
1 2 3
4 5 6
7 8 9
转置后的矩阵:
1 4 7
2 5 8
3 6 9
```
请编写c语言程序,实现矩阵(3行3列)的转置(即行列互换)
好的,这里是一个实现矩阵转置的C语言程序:
```c
#include <stdio.h>
#define N 3 // 矩阵的行数和列数
void transpose(int matrix[N][N]) {
int tmp;
for (int i = 0; i < N; i++) {
for (int j = i + 1; j < N; j++) {
tmp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = tmp;
}
}
}
int main() {
int matrix[N][N] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
printf("原矩阵:\n");
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
transpose(matrix);
printf("转置后的矩阵:\n");
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
程序中定义了一个 `N` 行 `N` 列的矩阵,使用嵌套循环输出原矩阵,然后调用 `transpose` 函数将矩阵进行转置,最后输出转置后的矩阵。转置函数中使用了两个嵌套循环,将矩阵的上三角元素和下三角元素交换位置,完成矩阵的转置。
运行结果:
```
原矩阵:
1 2 3
4 5 6
7 8 9
转置后的矩阵:
1 4 7
2 5 8
3 6 9
```
阅读全文