整数の配列と、キューの終わりを示す int (「リア」) を含む構造体があります。add()、remove()、print() などの関数があります。
remove() 関数は、すべてのアイテムを前方に移動する必要があります (実質的に arr[0] を削除し、arr[1] に置き換えますが、機能しません。
配列が 111,222,333,444 のように見え、remove() を呼び出すと、結果は 112,223,334 のようになります。
これまでのところ、主に Java に関連する、非常にイライラすることが多い問題をすべて解決することができましたが、この C の問題はまったく理解できませんでした。皆様からのご意見をお待ちしております。ありがとう。
コードの関連部分:
void remove( struct queue *q )
{
int i;
system ("cls");
if ( q->rear > 0)
{
printf("\n\n%d has been removed\n\n", q->rank[0]);
q->rear--;
for ( i = 0; i < q->rear; i++)
{
q->rank[i] = q ->rank[i]++;
printf(rank[i])
}
q->rank[(q->rear +1)] = NULL;
}
else
{
printf("\n\nThe queue is empty\n\n");
}
}