如何用C语言编程实现将预定义的2x3二维整型数组进行转置,将其转换为3x2的二维数组结构?
时间: 2024-12-25 07:28:25 浏览: 9
在C语言中,你可以通过两层循环来实现二维数组的转置。这里是一个简单的示例,假设我们有一个名为`arr`的2x3二维数组:
```c
#include <stdio.h>
#define ROWS 2
#define COLS 3
// 定义原始数组
int original[ROWS][COLS] = {
{1, 2, 3},
{4, 5, 6}
};
// 结构体来表示转置后的3x2数组
typedef struct {
int data[3][2];
} TransposedArray;
// 函数来转置二维数组
void transpose(int arr[ROWS][COLS], TransposedArray* transposed) {
int i, j;
for (i = 0; i < ROWS; ++i) {
for (j = 0; j < COLS; ++j) {
transposed->data[j][ROWS - 1 - i] = arr[i][j]; // 交换行和列的索引
}
}
}
// 打印转置后的数组
void print_transposed(TransposedArray transposed) {
int k;
for (k = 0; k < COLS * ROWS; ++k) {
printf("%d ", transposed.data[k / COLS][k % COLS]);
}
printf("\n");
}
int main() {
TransposedArray transposedArr;
transpose(original, &transposedArr);
printf("Original Array:\n");
print_transposed(transposedArr); // 转换后显示新数组
return 0;
}
```
当你运行这个程序,它会先转置`original`数组,并打印出转置后的结果。注意,你需要创建一个`TransposedArray`类型的变量来存储转置后的数组。
阅读全文