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