数组行列转换c语言用调用函数
时间: 2024-03-13 08:39:02 浏览: 21
以下是将C语言中按行存储的数组转换为按列存储的数组的示例代码:
```c
#include <stdio.h>
void transpose(int *a, int m, int n, int *b) {
int i, j;
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
b[j * m + i] = a[i * n + j];
}
}
}
int main() {
int a[4][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12}};
int b[3][4];
int i, j;
transpose((int *)a, 4, 3, (int *)b);
printf("Original array:\n");
for (i = 0; i < 4; i++) {
for (j = 0; j < 3; j++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
printf("Transposed array:\n"); for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
printf("%d ", b[i][j]);
}
printf("\n");
}
return 0;
}
```
该示例代码中,`transpose`函数用于将按行存储的数组`a`转换为按列存储的数组`b`。`m`和`n`分别表示`a`的行数和列数,`b`的行数和列数分别为`n`和`m`。在`main`函数中,我们定义了一个4行3列的数组`a`,并将其转换为3行4列的数组`b`。最后,我们分别输出了原始数组和转置后的数组。