gpt4 book ai didi

c - 在c中不显示字符链表

转载 作者:行者123 更新时间:2023-11-30 17:27:27 24 4
gpt4 key购买 nike

程序是关于合并两个具有字符信息的排序链表。合并的列表也应该排序。但是我的显示函数没有打印字符链表。该函数在 main 中被调用,但字符没有被打印。

struct node
{
char info;
struct node *link;
};
typedef struct node *NODE;


void Insert(NODE, char);
void Display(NODE);
NODE getNode();
int main()
{
int num, i, c1, c2;
char item;
NODE head1, head2, head3;
NODE temp1, temp2;
head1=getNode();
head2=getNode();
head3=getNode();
printf("First List:\n");
printf("Enter the number of elements: ");
scanf ("%d", &num);
printf ("Enter the elements in sorted order:\n");
for (i=0; i<num; i++)
{
scanf("%c", &item);
getchar();

Insert(head1, item);
}
printf("Second List:\n");
printf("Enter the number of elements: ");
scanf ("%d", &num);
printf ("Enter the elements in sorted order:\n");
for (i=0; i<num; i++)
{
scanf("%c", &item);
getchar();
Insert(head2, item);
}
temp1=head1->link;
temp2=head2->link;
while (temp1!=NULL&&temp2!=NULL)
{
c1=(int)temp1->info;
c2=(int)temp2->info;
if (c1<c2)
{
Insert(head3, temp1->info);
temp1=temp1->link;
}
else
{
Insert (head3, temp2->info);
temp2=temp2->link;
}
}
while (temp1!=NULL)
{
Insert(head3, temp1->info);
temp1=temp1->link;
}
while (temp2!=NULL)
{
Insert (head3, temp2->info);
temp2=temp2->link;
}

Display(head3);
return 0;
}

void Insert (NODE head, char item)
{
NODE temp = getNode();
NODE p;
temp->info=item;
temp->link=NULL;

if (head->link==NULL)
head->link=temp;

else
{
p=head->link;
while(p->link!=NULL)
p=p->link;
p->link=temp;
}
}


void Display(NODE head)
{
NODE temp;
temp=head->link;
if (head->link==NULL)
printf("The list is empty.\n");
else
{
printf("The joined list is:\n");
while (temp!=NULL)
{
printf("%c \t",temp->info);
temp=temp->link;
}
printf("\n");
}
}

NODE getNode()
{
NODE temp;
temp=(NODE) malloc(sizeof(struct node));
temp->link=NULL;
return temp;
}

最佳答案

在读取字符的 scanf(...)%c 之前添加一个空格

scanf(" %c", &item);

问题在于 %c 不会像 %f%d 等数字格式那样跳过空格。

关于c - 在c中不显示字符链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26389347/

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