gpt4 book ai didi

c - 学习链表 C

转载 作者:太空宇宙 更新时间:2023-11-04 08:49:44 24 4
gpt4 key购买 nike

我正在尝试找出链表并尝试制作一个链表,每个节点中有 2 个项目,但我无法正确打印它,而且我不确定我要做什么我做错了。

这是我的代码:

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>

struct node
{
int num;
char word[30];
struct node *next;
};

int main(void)
{
struct node *learn = NULL;
struct node *temp;
struct node *temp1, *p;
int q, i = 0;
char word1[30];

while (i != 7)
{
printf("Enter a number: ");
scanf("%d", &q);
temp = (struct node *) malloc(sizeof(struct node));
temp->num = q;
temp->next = NULL;
temp1 = p = learn;
while (temp1 != NULL)
{
p = temp1;
temp1 = temp1->next;
}
if (p != NULL)
p->next = temp;
else
learn = temp;
i++;
}

i = 0;
while (i != 7)
{
if (i == 0)
{
int c;
do
{
c = getchar();
} while (c != '\n' && c != EOF);
}
printf("\nEnter a word: ");
fgets(word1, 30, stdin);
temp = (struct node*)malloc(sizeof(struct node));
strcpy(temp->word, word1);
temp->next = NULL;
temp1 = p = learn;
while (temp1 != NULL)
{
p = temp1;
temp1 = temp1->next;
}
if (p != NULL)
p->next = temp;
else
learn = temp;
i++;

}

while (learn != NULL)
{
printf("%d\n", learn->num);
learn = learn->next;
}
while (learn != NULL)
{
printf("%s", learn->word);
learn = learn->next;
}
}

这是我输入的内容:

Enter a number: 1
Enter a number: 2
Enter a number: 3
Enter a number: 4
Enter a number: 5
Enter a number: 6
Enter a number: 7

输入一个词:a

输入一个词:b

输入一个词:c

输入一个词:d

输入一个词:e

输入一个词:f

输入一个词:g

这是我得到的:

1
2
3
4
5
6
7
0
0
0
0
0
0
0

我知道我做错了什么,我只是不知道是什么。

最佳答案

底部的第一个 while 循环遍历整个列表。 “learn”在第一个 while 循环结束时为 NULL,因此第二个循环从不打印任何内容。

关于c - 学习链表 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20105680/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com