这是链表程序,没有错误,但输出未正确显示 没有错误,但我认为逻辑不能实现,而无需使用仅逻辑功能。
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
答案 0 :(得分:1)
我看到的主要问题。
head = NULL;
每次在for循环中,您都将head
初始化为NULL
。
您应该在声明时进行初始化。
struct node * head = NULL;
也
将打印代码移至for
循环之外。
struct node * d = head;
while (d != NULL) {
print("%d", d - > data);
d = d - > next;
}