如何把一个一维数组转换成二维数组
答案:2 悬赏:20 手机版
解决时间 2021-01-30 02:10
- 提问者网友:献世佛
- 2021-01-29 21:54
如何把一个一维数组转换成二维数组
最佳答案
- 五星知识达人网友:人间朝暮
- 2021-01-29 22:59
假设你一维数组的大小为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]。
用宏定义(以下宏定义并没有上机调试,只是提供思路)
全部回答
- 1楼网友:不甚了了
- 2021-01-29 23:21
$a =
array ( '1969-12-31' =>10, '1969-12-30' => 20,'1969-12-29' => 5,
'1969-12-28' => 6, '1969-12-27' => 30, '1969-12-26' => 70,
'1969-12-25'=> 33);
//转换成这样的二维数组:array ( [0] => array ( [day] => 1969-12-31 [sum] => 10 ) [1] => array ( [day] => 1969-12-30 [sum] => 20 ) [2] => array ( [day] => 1969-12-29 [sum] => 5 ) [3]... )
$b = array();
foreach ($a as $key => $value) {
$b[]=array('day'=>$key,'sum'=>$value);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯