如何把一个一维数组转换成二维数组
1个回答
展开全部
假设你一维数组的大小为100
你需要把它拆分为20*5的一个二维矩阵。
不妨这样去实现:
假设一维数组的下标为X,可以把它在逻辑上转换为二维数组的下标:m = X / 5n = X % 5比如你要找第一行第二列的元素,那在一维数组中就是a[1]
转化为二维坐标就是b[0][1]。
其实多维数组和一维数组一样,在计算机中都是用的一段连续的内存。只是他们的表现形式不一样。
另外,C里边没有动态的二维数组,第二维的大小必须指定的。
答:这个可以用宏来实现。举个例子说,比如你定义一个大小为100的一维数组A,然后你需要别人输入m=8,n=9(很多情况别人不可能按照你的意图来刚好用m和n整除一维数组的下表最大值,也就是说那个一维数组只需要保证足够大就可以了),然后你希望得到一个8*9的二维矩阵B[8][9]。
用宏定义(以下宏定义并没有上机调试,只是提供思路)
你需要把它拆分为20*5的一个二维矩阵。
不妨这样去实现:
假设一维数组的下标为X,可以把它在逻辑上转换为二维数组的下标:m = X / 5n = X % 5比如你要找第一行第二列的元素,那在一维数组中就是a[1]
转化为二维坐标就是b[0][1]。
其实多维数组和一维数组一样,在计算机中都是用的一段连续的内存。只是他们的表现形式不一样。
另外,C里边没有动态的二维数组,第二维的大小必须指定的。
答:这个可以用宏来实现。举个例子说,比如你定义一个大小为100的一维数组A,然后你需要别人输入m=8,n=9(很多情况别人不可能按照你的意图来刚好用m和n整除一维数组的下表最大值,也就是说那个一维数组只需要保证足够大就可以了),然后你希望得到一个8*9的二维矩阵B[8][9]。
用宏定义(以下宏定义并没有上机调试,只是提供思路)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询