首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数组读入另一个数组C++

将数组读入另一个数组C++
EN

Stack Overflow用户
提问于 2011-11-15 07:29:33
回答 3查看 188关注 0票数 1

将输入读取到数组后:

代码语言:javascript
复制
int * inputs;

"inputs“是一维数组:inputs[6],然后读出这个数组,值是:

代码语言:javascript
复制
inputs[0]=1
inputs[1]=2
inputs[2]=3
inputs[3]=4
inputs[4]=5
inputs[5]=6

我想把这个数组读入另一个一维数组:

代码语言:javascript
复制
int counter=0;
int * allElements = new int[6];

for(int i=0; i<6; i++)
{
      allElements[counter++] = inputs[i];
}

这是一种将所有元素读入一维数组的传统方法,我相信如果我以这种方式读取"allElements“的元素:

代码语言:javascript
复制
for(int i=0; i<6; i++)
   printf("%d ", allElements[i]);

它应该是:1 2 3 4 5 6

但是,我希望将该数组的所有元素读取到一维数组中,这样当我这样做时:

代码语言:javascript
复制
for(int i=0; i<6; i++)
   printf("%d ", allElements[i]);

应该是:1 3 5 2 4 6

我怎样才能做到这一点呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-15 07:42:02

下面是什么:

代码语言:javascript
复制
for(int i=0; i<6; i++)
{
    allElements[i] = inputs[2*(i%3) + (i/3)];
}

假设inputs是一个由3x2组成的二维数组,那么i%3是一个坐标,i/3是另一个坐标。只需将其转置为2x3矩阵,即可完成!

票数 2
EN

Stack Overflow用户

发布于 2011-11-15 07:57:18

代码语言:javascript
复制
int * allElements = new int[6];

for(int i=0; i<6; i+=2)
{
    allElements[i/2] = inputs[i];
    allElements[3+i/2] = inputs[i+1];
}
票数 3
EN

Stack Overflow用户

发布于 2011-11-15 08:22:31

代码语言:javascript
复制
const int size =6;
int inputs[size]={1,2,3,4,5,6};
int allElements[size];

...

  if (size % 2)
  {
      int middle=(size/2) +1;
      for(int i=0; i<size; i+=2)
      {   
          allElements[i/2] = inputs[i];
          if (i < size-2)
            allElements[middle+i/2] = inputs[i+1];          
      }      

  }
  else
  {
    int middle=size/2;
    for(int i=0; i<size; i+=2)
    { 
      allElements[i/2] = inputs[i];
      allElements[middle+i/2] = inputs[i+1];
    }      
  }

逻辑绝对可以简化。只是第一次尝试,而不去管它。

如果想让它适用于第一种情况

代码语言:javascript
复制
allElements[0]=inputs[0];      
allElements[1]=inputs[2];
allElements[2]=inputs[4];
allElements[3]=inputs[1];
allElements[4]=inputs[3];
allElements[5]=inputs[5];      
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8129672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档