我具有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
答案 0 :(得分:0)
要在数组的索引name Tot1 Tot2 Tot3
a 50 30 45
b 30 0 0
处插入n
元素,请尝试逻辑:
初始化包含元素的原始数组。现在,将变量中的k
,n
和 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
我希望你理解它,它解决了你的问题。