1

私は 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; 
}
4

1 に答える 1

1

参照deletePostion()する必要がありsizeます:

void deletePosition(char arr[], int& size, int pos) 
于 2013-11-01T04:04:24.603 に答える