私はC言語の新機能で、可変長の配列から整数5を削除する関数内で関数を処理しようとしています。その後、配列に対応します。 a[0]
は、配列の長さを決定する配列内の要素です。 v
は配列から削除される要素です。残りのコードと他のすべての詳細については、これが考慮されます。 、あなたはそれが意味をなすためには、この関数の外側のコードの残りの部分を参照する必要がある場合Cの配列から要素を削除しようとすると予期しない結果が出る
void delete_set(int v, int a[])
{
int i;
int j;
for (i = 0; i < a[0]; i++)
if (a[i] == v)
{
for(j = i; j < a[0]; j++)
a[j] = a[j + 1];
a[0] = a[0] - 1;
}
}
だから、私はわからないよ:
以下は、私は機能のために書かれているコードです。しかし私の問題はこれです。私がa[i] ==
に(ifステートメントで)何を設定したとしても、読み込まれる配列の長さがまさにその数であれば、私は予期しない答えを得ます。しかし、配列の長さの他の読み込みでは、期待通りの結果が得られます。この問題が私にどのように提示されたかのように、コーディングの変更は関数内で行われなければなりません。
ありがとうございました。長い投稿を申し訳ありません(該当する場合)。私はフォーラムを使うのにあまり慣れていない。
[0]は[0]を含む配列の長さですか? –
'if(a [i] == v)' - > 'while(a [i] == v)' – BLUEPIXY