标题:一维数组怎么转为二维数组啊
只看楼主
乖巧的大脸猫
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2021-5-8
 问题点数:0 回复次数:4 
一维数组怎么转为二维数组啊
将一个一维数组a(9)中各元素按行的顺序放入二维数组b(3,3)
搜索更多相关主题的帖子: 顺序 二维数组 元素 一维 数组 
2021-05-08 14:09
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
啥情况?
b(1,1)=a(1)
b(2,1)=a(2)
b(3,1)=a(3)
b(1,2)=a(4)
......
这种的吗?
如果数组下标都是1开始的,那么可以使用 CopyMemory
如:
程序代码:
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Sub Command1_Click()
Dim a(1 To 9) As Long
Dim b(1 To 3, 1 To 3) As Long
Dim i As Long
For i = 1 To 9
    a(i) = i * 10 + Rnd() * 10
Next i
Call CopyMemory(b(1, 1), a(1), 4 * 9)
End Sub


如果不是,老老实实写循环一个一个的赋值吧。

授人于鱼,不如授人于渔
早已停用QQ了
2021-05-08 21:04
apull
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:三体星系
等 级:版主
威 望:185
帖 子:1404
专家分:8479
注 册:2010-3-16
得分:0 

数组从0开始
for i=0 to 2
  for j=0 to 2
     b(i,j)=a(i*3+j)
  next j
next i

从1开始
for i=1 to 3
  for j=1 to 3
     b(i,j)=a((i-1)*3+j)
  next j
next i
2021-05-08 22:28
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
得分:0 
假设A(9)为A(1)-A(9),B(3,3)为B(1,1)-B(3,3)

for i=0 to 8'按行放
  b((i \ 3)+1,(i mod 3) +1 )=a(i+1)
next

For i = 0 To 8'按列放
  b((i Mod 3) + 1, (i \ 3) + 1) = a(i + 1)
Next
2021-05-12 14:34
cwa9958
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:247
专家分:1228
注 册:2006-6-25
得分:0 
将一个一维数组a(9)中各元素按行的顺序放入二维数组b(3,3)

a(9)是10个元素,b(3,3)是16个元素
下标从1开始,是一样的个数,都是9个。
dim a(9),b(3,3)
for i=1 to 3
   for j=1 to 3
     b(i,j)=a((i-1)*3+j)
   next
next


[此贴子已经被作者于2021-5-13 15:07编辑过]

2021-05-13 15:06



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-505690-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.138855 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved