私は C++ プログラミングが初めてで、この関数の作成に問題があります。私はすでにいくつかのコードを書いています(以下を参照)が、何が間違っているのかわかりません。私を助けてください。ありがとう。
配列は次のとおりです。 '};
(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;
}