写一个使用数组指针的矩阵转置的程序
时间: 2024-05-03 21:19:24 浏览: 95
下面是使用数组指针的矩阵转置的C语言程序:
```c
#include <stdio.h>
void transpose(int (*a)[3], int (*b)[2]) {
int i, j;
for (i = 0; i < 3; i++) {
for (j = 0; j < 2; j++) {
b[j][i] = a[i][j];
}
}
}
int main() {
int a[3][2] = {{1, 2}, {3, 4}, {5, 6}};
int b[2][3];
int i, j;
printf("Original Matrix:\n");
for (i = 0; i < 3; i++) {
for (j = 0; j < 2; j++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
transpose(a, b);
printf("\nTransposed Matrix:\n");
for (i = 0; i < 2; i++) {
for (j = 0; j < 3; j++) {
printf("%d ", b[i][j]);
}
printf("\n");
}
return 0;
}
```
输出结果:
```
Original Matrix:
1 2
3 4
5 6
Transposed Matrix:
1 3 5
2 4 6
```
在此程序中,我们使用了两个二维数组 `a` 和 `b`。 `a` 是原始矩阵, `b` 是转置后的矩阵。我们定义了一个函数 `transpose` 来执行矩阵转置。该函数使用两个数组指针作为参数,这样我们就可以传递二维数组的地址作为参数,而不是整个数组本身。在函数中,我们使用两个循环来遍历原始矩阵,并将转置后的值复制到 `b` 数组中。最后,我们从 `main` 函数中调用 `transpose` 函数,并打印出转置后的矩阵。
阅读全文