C语言实现线性列表

vast_wang 2019-05-24 01:11:18
#include <stdio.h>
#include <stdlib.h>

typedef struct student
{
int score;
struct student *next;
}LinkList;

LinkList *create (int n)
{
LinkList *head, *node, *end;
head = (LinkList *)malloc(sizeof(LinkList));

end = head;

for(int i = 0; i < n; i++)
{
node = (LinkList *)malloc(sizeof(LinkList));
scanf("%d", &node->score);
end->next = node;
node = end;
}
end->next = NULL;
return head;
}

void change (LinkList * list, int n)
{
LinkList *t = list;
int i = 0;
while(i < n && t != NULL)
{
t = t->next;
i++;
}
if(t != NULL)
{
puts("inout: ");
scanf("%d", &t->score);
printf("change successful");

}
else
{
puts("没有此结点!");
}
}



int main(int argc, char const *argv[])
{
LinkList *L;
L = create(5);

change(L, 3);

return 0;
}

=====================
问题描述:
change函数这里有问题,输入值的时候就结束了。
请问我写的main函数的代码由没有错误。
...全文
112 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiamianshiye 2019-05-24
  • 打赏
  • 举报
回复
前面几楼都正解。
vast_wang 2019-05-24
  • 打赏
  • 举报
回复
引用 2 楼 单眼皮的根号3的回复:
create函数写错了,end指针没有递增,一直都是在head的位置,所以你即使输入5个数,但是只有head一个节点,修改如下:
感谢感谢,厉害厉害,原来是我create写错了。
vast_wang 2019-05-24
  • 打赏
  • 举报
回复
引用 1 楼 636f6c696e的回复:
问题在于create 函数,有个赋值搞反了
LinkList *create (int n)
{
LinkList *head, *node, *end;
head = (LinkList *)malloc(sizeof(LinkList));

end = head;
int i;
for( i = 0; i < n; i++)
{
node = (LinkList *)malloc(sizeof(LinkList));
scanf("%d", &node->score);
end->next = node;
//node = end;
end = node;
}
end->next = NULL;
return head;
}
谢谢你的的讲解,我明白了。
  • 打赏
  • 举报
回复
create函数写错了,end指针没有递增,一直都是在head的位置,所以你即使输入5个数,但是只有head一个节点,修改如下:
636f6c696e 2019-05-24
  • 打赏
  • 举报
回复
问题在于create 函数,有个赋值搞反了
LinkList *create (int n)
{
LinkList *head, *node, *end;
head = (LinkList *)malloc(sizeof(LinkList));

end = head;
int i;
for( i = 0; i < n; i++)
{
node = (LinkList *)malloc(sizeof(LinkList));
scanf("%d", &node->score);
end->next = node;
//node = end;
end = node;
}
end->next = NULL;
return head;
}

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧