CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

如何将一个3*4的二维数组转置成4*3的数组啊?

楼主kj110(kj110)2004-12-04 19:47:32 在 VB / 基础类 提问

Option   Base   1  
  Dim   c(3,   4)   As   Integer  
   
  Private   Sub   Form_click()  
   
   
          For   a   =   1   To   3  
                  For   b   =   1   To   4  
                          c(a,   b)   =   Int((6   *   Rnd)   +   1)  
                         
                          Print   c(a,   b);   Spc(3);  
                  Next  
          Print  
          Next  
   
   
  End   Sub  
   
   
  我已经生成了一个随即的二维数组,如何将他转置成一个4*3的数组? 问题点数:0、回复次数:7Top

1 楼tmran(Rocky 爱瘦鱼)回复于 2004-12-04 21:34:25 得分 0

For   a   =   1   To   3  
                  For   b   =   1   To   4  
                          x(b,a)=c(a,   b)  
                         
                          Print   x(b,a)  
                  Next  
                  Print  
  Next  
  Top

2 楼wwqna(york)回复于 2004-12-04 21:53:28 得分 0

估计copymemory可以做到,未经测试的哦!Top

3 楼edwal(无知无情)回复于 2004-12-04 22:02:51 得分 0

int   a[3][4];  
  int   b[4][3];  
  for(int   i=0;i<3;i++)  
      for(int   j=0;j<4;j++)  
              b[j][i]=a[i][j];  
  Top

4 楼WallesCai(女人之美,在于蠢得无怨无悔,男人之美,在于撒谎撒得白日见鬼)回复于 2004-12-04 22:44:48 得分 0

dim   A(2,3)   as   integer   '这才是3*4的数组  
  dim   B(3,2)   as   integer   '这才是4*3的数组,因为不指定的话,数组默认从0开始的  
  ...  
  copymemory   B(0,0),A(0,0),24  
  '解释一下:就是从数组元素A(0,0)开始向数组元素B(0,0)开始连续复制24个字节的数据  
  '因为INTEGER是2个字节的,所以   3*4*2=24Top

5 楼WallesCai(女人之美,在于蠢得无怨无悔,男人之美,在于撒谎撒得白日见鬼)回复于 2004-12-04 22:58:06 得分 0

API定义:  
  Private   Declare   Sub   CopyMemory   Lib   "kernel32"   Alias   "RtlMoveMemory"   (pDest   As   Any,   pSrc   As   Any,   ByVal   ByteLen   As   Long)  
  Top

6 楼jhtzz(执著男孩)回复于 2004-12-05 09:53:20 得分 0

我去试试,看是不是真的哈  
  但  
  int   a[3][4];  
  int   b[4][3];  
  for(int   i=0;i<3;i++)  
      for(int   j=0;j<4;j++)  
              b[j][i]=a[i][j];  
   
  和  
  dim   A(2,3)   as   integer   '这才是3*4的数组  
  dim   B(3,2)   as   integer   '这才是4*3的数组,因为不指定的话,数组默认从0开始的  
  ...  
  copymemory   B(0,0),A(0,0),24  
  有什么不同么?比如说速度,或所占内存呀这些都是区别Top

7 楼ylsn2004(碧海青天)回复于 2004-12-05 10:37:30 得分 0

利用b(j,i)=a(i,j)方法可以得到一个倒置的数组,能满足楼主的要求  
  利用API的copymemory方法不可以,这只能得到一个一模一样的数组,维数并不改变.Top

相关问题

  • 二维数组
  • 请教由二维数组转成三位数组的问题
  • oracle 二维数组
  • 急!急!急! 如何实现一维数组到二维数组的转换?
  • 急!急!急! 如何实现一维数组到二维数组的转换?
  • 一维图像数组转换二维图像数组的问题
  • 数组问题:如何将二维字符数组转换成一维字符串数组
  • 二级指针 如何转换成 二维数组的指针?
  • ArrayList转换为二维数组有问题,请指点
  • 请问如何设置动态二维数组?

关键词

  • 数组
  • 二维
  • 置成
  • print
  • sub
  • next

得分解答快速导航

  • 帖主:kj110

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo