Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
5年前关闭。
我试图在C中实现链接列表,在这里我将节点插入列表的末尾,在我插入值之后,除最后一个值外的所有值都在打印。这是代码:
这是主要功能的实现:
明确表示“当到达指向列表结尾的元素时停止”(即,当到达最后一个元素但在使用之前停止)。
改为使用
上面写着“当您不再在列表中时停止”。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
5年前关闭。
我试图在C中实现链接列表,在这里我将节点插入列表的末尾,在我插入值之后,除最后一个值外的所有值都在打印。这是代码:
list_t *add(list_t *l,int e)
{
list_t *head;
if(l == NULL)
{
l = malloc(sizeof(list_t));
l->val = e;
l->next = NULL;
return l;
}
head = l;
while(l->next != NULL)
l=l->next;
l->next = malloc(sizeof(list_t));
l=l->next;
l->val = e;
l->next = NULL;
return head;
}
这是主要功能的实现:
int main()
{
list_t *ints=NULL;
list_t *temp;
int i, choice;
while(1){
printf("1. Enter\n2. Show List\n3. Exit\n\n");
scanf("%d", &choice);
switch(choice){
case 1:
printf("Enter item\n");
scanf("%d", &i);
ints = add(ints,i);
break;
case 2:
temp = ints;
while(temp->next != NULL)
{
printf("%d\n",temp->val);
temp=temp->next;
}
break;
case 3:
default:
exit(0);
}
}
return 0;
}
最佳答案
这条线
while(temp->next != NULL)
明确表示“当到达指向列表结尾的元素时停止”(即,当到达最后一个元素但在使用之前停止)。
改为使用
while(temp != NULL)
上面写着“当您不再在列表中时停止”。
10-08 03:34