这是链接列表程序没有错误,但输出没有正确显示没有错误,但我认为逻辑不正确实现这不使用功能只有逻辑是必需的。
struct node * c;
struct node * head;
int n, i = 0;
scan("%d", & n);
if (n < 10) {
for (i = 0; i < n; i++) {
struct node * p;
p = (struct node * ) malloc(size of (struct node));
scan("%d", & p - > data);
p - > next = NULL;
c = NULL;
head = NULL;
if (head == NULL) {
head = p;
} else {
c = head;
while (c - > next != NULL) {
c = c - > next;
}
c - > next = p;
print("%d", c - > next);
struct node * d = head;
while (d != NULL) {
print("%d", d - > data);
d = d - > next;
}
}
}
这是链表程序,我添加的代码部分不是整个块
如果输入10 20 30输出10-> 20-> 30,则预期结果
我看到的主要问题。
head = NULL;
你每次在for循环中初始化head
到NULL
。您应该在声明时进行初始化。
struct node * head = NULL;
也
将打印代码移到for
循环之外。
struct node * d = head;
while (d != NULL) {
print("%d", d - > data);
d = d - > next;
}