我是 C++ 编程的新手,我在编写这个函数时遇到了问题。我已经写了一些代码(见下文),但我不知道出了什么问题。请帮我。谢谢。
这是数组:char marbles[10] = {'B', 'G', 'R', 'P', 'B', 'G', 'R', 'P', 'B', 'G '};
(a) 该函数接受一个字符数组和该数组的大小,并删除偏移量 pos 处的元素。偏移量大于 pos 的元素全部移动以填补空白。这是我的代码,但我不确定它是否正确。
void deletePosition(char arr[], int size, int pos)
{
for (int i = pos; i < size - 1; i = i + 1)
{
arr[i] = arr[i + 1];
}
size = size - 1;
}
(b) 该函数接收一个字符数组,该数组表示一系列彩色弹珠以及数组的大小。它删除所有 2 个或更多共享相同颜色的弹珠的序列,并作为删除的结果返回数组的新大小。应该使用“deletePosition”函数(上图(a)部分)来执行单个删除。
这是我的代码,但我不知道出了什么问题
int deleteMarbles(char marbles[], int size)
{
int i, j;
for (i = 1; i < size; i=i+1)
{
for (j=0; j<i; j=j+1)
{
if (marbles[i] == marbles[j])
{
deletePosition(marbles, size, i);
deletePosition(marbles, size, j);
}
}
}
return size;
}