c - 将一维数组转换为矩阵
问题描述
我有一个具有以下值的一维数组:
10010011
我想按以下顺序将此一维数组转换为 2X4 矩阵:
1001
0011
我尝试的代码如下:
#include <stdio.h>
#include <stdlib.h>
#define rows_Matrix 2
#define cols_Matrix 4
void print2DArray(unsigned **arr, int m, int q);
int main()
{
int k = 0;
unsigned Array[8] = { 1, 0, 0, 1, 0, 0, 1, 1};
//Allocation of Memory.
unsigned **Matrix = (unsigned **)malloc(sizeof(unsigned *)*rows_Matrix); //Rows
for (int i = 0; i < rows_Matrix; i++) //Rows
{
Matrix[i] = (unsigned *)malloc(sizeof(unsigned ) * cols_Matrix); //Columns
}
do
{
for (int i = 0; i < rows_Matrix; i++)
{
for (int j = 0; j < cols_Matrix; j++)
{
Matrix[i][j] = Array[k];
}
}
k++;
} while (k < 8);
print2DArray(Matrix, 2, 4);
return 0;
}
void print2DArray(unsigned **arr, int m, int q)
{
for (int i = 0; i < m; i++) //Rows
{
for (int j = 0; j < q; j++)//Columns
{
printf("%d\t", arr[i][j]);
}
printf("\n");
}
printf("\n");
}
但我得到的答案是:
1 1 1 1
1 1 1 1
我想知道为什么没有正确分配值。看来我这样做的方式只是复制一维数组的第一个元素。
解决方案
你在错误的地方增加了。所以 Array[k] 表示相同的元素。
#include <stdio.h>
#include <stdlib.h>
#define rows_Matrix 2
#define cols_Matrix 4
void print2DArray(unsigned **arr, int m, int q);
int main()
{
int k = 0;
unsigned Array[8] = { 1, 0, 0, 1, 0, 0, 1, 1};
//Allocation of Memory.
unsigned **Matrix = (unsigned **)malloc(sizeof(unsigned *)*rows_Matrix); //Rows
for (int i = 0; i < rows_Matrix; i++) //Rows
{
Matrix[i] = (unsigned *)malloc(sizeof(unsigned ) * cols_Matrix); //Columns
}
do
{
for (int i = 0; i < rows_Matrix; i++)
{
for (int j = 0; j < cols_Matrix; j++)
{
Matrix[i][j] = Array[k];
k++; //updated
}
}
} while (k < 8);
print2DArray(Matrix, 2, 4);
return 0;
}
void print2DArray(unsigned **arr, int m, int q)
{
for (int i = 0; i < m; i++) //Rows
{
for (int j = 0; j < q; j++)//Columns
{
printf("%d\t", arr[i][j]);
}
printf("\n");
}
printf("\n");
}
推荐阅读
- javascript - 有没有办法使用“in”运算符排除某些元素?
- html - Bootstrap 4 - 如何实现这种布局
- python - 在 Windows 上使用 CUDA 的 OpenCV Python:DLL 加载失败
- r - 两组差异,数据处理
- c# - 在模态而不是重定向 C# MVC Ajax 中返回错误
- flutter - 使用 Navigator.push() 时的“无限循环”
- python - 从Arduino获取数据的问题它输出结束行字符Python
- powerbi - 条件格式矩阵中的总计 - Power bi
- laravel - 如何在 Cpanel 的子域 lumen/laravel 上安装免费 SSL?
- r - 在 R 中实现 BFS 算法的问题