如何使用C语言将一个二维数组从4行2列结构转换为2行4列结构?
时间: 2024-12-02 19:14:44 浏览: 44
在C语言中,如果你有一个4行2列的二维数组,并想将其转换为2行4列,你需要通过循环遍历并重组数据。由于C语言本身不支持直接的内存形状变换,你通常需要创建一个新的二维数组来存储重构后的数据。
假设原数组arr[4][2]
,下面是简单的步骤:
#include <stdio.h>
#define ROWS_ORIGINAL 4
#define COLS_ORIGINAL 2
#define ROWS_NEW 2
#define COLS_NEW 4
// 原始数组
int original[ROWS_ORIGINAL][COLS_ORIGINAL];
void transpose(int** dest, int rows, int cols, int src[ROWS_ORIGINAL][COLS_ORIGINAL]) {
for (int i = 0; i < rows; ++i) {
for (int j = i; j < cols; ++j) {
// 转置元素
*dest[j] = src[i][j];
}
dest += cols; // 移动到下一行
}
}
int main() {
// 初始化原始数组...
// 创建新数组用于存放转置后的结果
int new[ROWS_NEW][COLS_NEW] = {0};
// 调用函数进行转置
transpose(new, ROWS_NEW, COLS_NEW, original);
// 现在new数组就是2行4列的
// 新数组访问示例:
printf("%d\n", new[0][0]); // 输出新数组的第一个元素
return 0;
}
相关推荐


















