我正在尝试编写C#代码来创建两个Char数组 名称为“ ptrArr ”,“ ptrArr2 ”
并将*放在数组“ ptrArr ”中的每个索引(2 ^ i)-1 中 例如:指数0,1,3,7 ......
然后将“ ptrArr2 ”的元素复制到“ ptrArr ”而不用复制元素到数组“ptrArr”的索引有'*'值。
正如我在链接中的图片中所解释的
https://app.box.com/s/e6qwsnw7iwg86c90vohm
我需要你的帮助才能做到这一点
这是我的尝试
int i = 0, j = 0, n = 0;
while (n < ptrArr.Length)
{
if (ptrArr[i] != '*')
{
ptrArr2[j] = ptrArr[i];
i++;
j++;
}
else
i++;
}
string s = new string(ptrArr);
textBox5.Text = s;
答案 0 :(得分:1)
这可以解决您的问题,并根据需要获得ptrArr2。请评论
static void Main(string[] args)
{
char[] ptrArr = new[] { '0','1','0','1','0','1','0','1' };
char[] ptrArr2= new char[0];
List<char> ptrArr2temp = new List<char>();
for (int i = 0; i < ptrArr.Length; i++)
{
ptrArr2temp.Add(ptrArr[i]);
}
for (int i = 0; i < ptrArr.Length; i++)
{
int internalIndex = ((int)(Math.Pow(2, i))) - 1;
if (ptrArr2temp.Count > internalIndex)
{
ptrArr2temp.Insert(internalIndex, '*');
}
}
ptrArr2 = ptrArr2temp.ToArray();
}