用c语言编写程序,功能是将M行N列的二维数组中的字符数据按列的顺序依次放到一维数组中
时间: 2025-01-27 13:15:25 浏览: 39
好的,我来为您编写一个用C语言实现将M行N列的二维数组中的字符数据按列的顺序依次放到一维数组中的程序。以下是代码实现:
```c
#include <stdio.h>
#define M 3 // 定义二维数组的行数
#define N 4 // 定义二维数组的列数
int main() {
char array2D[M][N] = {
{'a', 'b', 'c', 'd'},
{'e', 'f', 'g', 'h'},
{'i', 'j', 'k', 'l'}
};
char array1D[M * N];
// 将二维数组按列顺序转换为一维数组
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
array1D[i * M + j] = array2D[j][i];
}
}
// 打印结果
printf("二维数组:\n");
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
printf("%c ", array2D[i][j]);
}
printf("\n");
}
printf("\n转换后的一维数组:\n");
for (int i = 0; i < M * N; i++) {
printf("%c ", array1D[i]);
}
printf("\n");
return 0;
}
```
这个程序首先定义了一个3行4列的二维字符数组 `array2D`,然后定义了一个一维字符数组 `array1D` 用来存储转换后的结果。
转换过程使用了两重循环。外层循环遍历列,内层循环遍历行。通过 `array1D[i * M + j] = array2D[j][i];` 这行代码,我们将二维数组中的元素按列顺序依次赋值给一维数组。
最后,程序打印出原始的二维数组和转换后的一维数组。
这个程序可以处理任意大小的M行N列的二维字符数组,只需修改 `#define M` 和 `#define N` 的值即可。
阅读全文
相关推荐


















