横向排列的数组转换为竖向排列数组的C语言程序代码
时间: 2024-04-30 15:18:10 浏览: 86
假设原数组为 `int arr[row][col]`,要转换为竖向排列的新数组为 `int newArr[col][row]`。
可以使用两层循环,将原数组中每个元素放到新数组对应的位置上,代码如下:
```c
int arr[row][col];
int newArr[col][row];
// 将 arr 中的元素转换到 newArr 中
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
newArr[j][i] = arr[i][j];
}
}
```
其中,外层循环控制原数组的行数,内层循环控制原数组的列数。在循环中,将原数组中每个元素转换到新数组对应的位置上。注意,由于新数组的行列与原数组相反,所以在赋值时需要将原数组的行索引和列索引交换。
相关问题
横向排列的数组转换为竖向排列数组的完整C语言程序代码
以下是将横向排列的数组转换为竖向排列数组的完整C语言程序代码:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 4
int main() {
int arr[ROWS][COLS] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
int transArr[COLS][ROWS];
// 将横向排列的数组转换为竖向排列数组
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
transArr[j][i] = arr[i][j];
}
}
// 打印竖向排列的数组
for (int i = 0; i < COLS; i++) {
for (int j = 0; j < ROWS; j++) {
printf("%d ", transArr[i][j]);
}
printf("\n");
}
return 0;
}
```
在该程序中,我们首先定义了一个3行4列的数组 `arr`,然后定义了一个4行3列的数组 `transArr`,用于存储转换后的竖向排列数组。接着,我们使用两个嵌套的循环遍历 `arr` 数组中的元素,将其存储到 `transArr` 数组中对应的位置。最后,我们再使用两个嵌套的循环打印出 `transArr` 数组中的元素,即竖向排列的数组。
横向排列的数组转换为竖向排列数组的程序代码
下面是一个将横向排列的数组转换为竖向排列数组的 Python 代码示例:
```python
def horizontal_to_vertical(arr):
rows = len(arr)
cols = len(arr[0])
result = []
for j in range(cols):
new_row = []
for i in range(rows):
new_row.append(arr[i][j])
result.append(new_row)
return result
```
该函数接受一个二维数组 `arr`,并返回一个新的二维数组,其中每个原数组中的列都变成了新数组中的行。例如,如果原数组为 `[[1, 2, 3], [4, 5, 6]]`,则该函数返回 `[[1, 4], [2, 5], [3, 6]]`。
该函数的实现思路是,首先获取原数组的行数和列数,然后遍历每一列,对于每一列,再遍历该列中的每个元素,将其添加到新数组的相应行中。最终返回新数组即可。
阅读全文