通过n个位置移动数组元素

时间:2016-06-29 09:08:01

标签: c++ c arrays gcc g++

我具有C,C ++的基本知识,我试图在数组中的k个位置插入n个元素并移动数组中的k + 1个元素。 我为这个

使用了两个for循环
void insert(int n,int k)
{
  int temp=arrayA[k][4];

  for(int u=k+1;u<=rowA;u++)
  {
    arrayA[k+n][4]=arrayA[k+1][4];
    arrayA[k+n][3]=Bigradius;
    arrayA[k+n][2]=arrayA[k+1][2];
    arrayA[k+n][1]=arrayA[k+1][1];
    arrayA[k+n][0]=arrayA[k+1][0];
  }

  for(int pos=k;pos<=k+n-1;pos++,)
  {   
    arrayA[pos][4]=temp;
    arrayA[pos][3]=B
    arrayA[pos][2]=s1;
    arrayA[pos][1]=s2;
    arrayA[pos][0]=s3;  
  }  
}

其中n不是新元素,k是插入新元素的位置,s1,s2,s3 ..是某些值

如果是初始文件    0.74172455 0.03613250 0.82822931 0.03121938 0    0.45620244 0.33476580 0.92169053 0.03121938 1    0.13701758 0.74540644 0.56569663 0.03121938 2    0.94162524 0.13094005 0.62107182 0.03121938 3

但是在输出中如果我在位置0插入3个元素,则缺少位置1,2的元素

-0.0104065  0.0312194 0.0728452 0.0104065      0 
 0.0104065 -0.0312194 0.0520323 0.0104065      0 
 0.0104065 -0.0312194 0.0520323 0.0312194      0 
 0.941625   0.13094   0.621072  0.0312194      3 

1 个答案:

答案 0 :(得分:0)

要在数组的索引name Tot1 Tot2 Tot3 a 50 30 45 b 30 0 0 处插入n元素,请尝试逻辑

初始化包含元素的原始数组。现在,将变量中的kn n 元素中的值插入另一个数组中(假设 to_add [] )来自用户。现在,初始化一个第二个长度= 主阵列长度 + n 的数组。
(1)初始化了所有必需的值和数组后,运行从index = k到主数组的index = 0的循环,并将这些元素复制到第二个阵列。
(2)现在,对于第二个数组,从index = k-1运行第二个循环到index = k,并复制index = k + n - 1的所有元素将to_add数组放入第二个数组中 (3)最后,从index = index - k运行第三个循环到第二个数组的index = k + n并复制index = (length of second array) - 1的所有元素主阵列进入第二个数组。

这是上述逻辑的C ++代码。

index - n

我希望你理解它,它解决了你的问题。