0
我有一個包含一個整數數組和一個int(「後方」)的結構,顯示隊列的結尾。我有一些功能,例如添加(),刪除()和打印()。C - 刪除int up up隊列
的remove()函數應該向前移動的所有項目(有效刪除ARR [0],通過改編[1]替換它,但它不能正常工作。
如果我的陣列看起來像111222333444和我打電話刪除(),結果看起來像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");
}
}
它的工作原理和解釋清楚,謝謝。我仍然不明白,一個int的某些部分如何與其他整數的部分混合起來,你能解釋一下嗎?即使我現在看到問題出在哪裏,我仍然無法解釋它產生的行爲。 – user2065781 2013-03-13 14:01:21
不太確定你的意思 - 你的示例輸出看起來像是在處理字符,而不是ints,並且remove()函數正在做它應該做的事情 - 刪除第一個字符並將所有其他字符移到左側,包括逗號。 – 2013-03-13 14:07:02
好了,現在。它不增加i,它增加了存儲在arr [i]中的值... – user2065781 2013-03-14 23:53:30