循环出了点问题 不能循环 找了好久没发现哪里有问题求大佬帮忙
#include<stdio.h>#include<stdlib.h>
typedef int DataType;
typedef struct node
{
DataType data;
struct node *next;
}ListNode,*LinkList;
LinkList InitList ();
void HeadAddList(LinkList L);
void PrintList(LinkList L);
int main()
{
LinkList L=InitList();
HeadAddList(L);
PrintList(L);
printf("软件2005 李广森\n学号:20200220117");
return 0;
}
LinkList InitList ()
{
LinkList head=(LinkList)malloc(sizeof(ListNode));
if(head==NULL)
{
printf("空间申请失败!\n");
exit(-1);
}
head->next=NULL;
return head;
}
void HeadAddList(LinkList L)
{
DataType x;
char ch;
do
{
LinkList p=(LinkList)malloc(sizeof(ListNode));
if(p==NULL)
{
printf("空间申请失败!\n");
return;
}
printf("请输入数据的值\n");
scanf("%d",&x);
p->data=x;
p->next=L->next;
L->next=p;
printf("是否要继续输入数据元素的值(Y/N)");
scanf("%c",&ch);
}while(ch=='Y'||ch=='y');
return;
}
void PrintList(LinkList L)
{
LinkList p=L->next;
int i=0;
while(p)
{
printf("(%d)%d\t",++i,p->data);
p=p->next;
}
printf("\n");
return;
} 在scanf("%d", &x);后加一个getchar();来缓冲输入的回车符
void HeadAddList(LinkList L)
{
DataType x;
char ch;
do
{
LinkList p=(LinkList)malloc(sizeof(ListNode));
if(p==NULL)
{
printf("空间申请失败!\n");
return;
}
printf("请输入数据的值\n");
scanf("%d",&x);
getchar();
p->data=x;
p->next=L->next;
L->next=p;
printf("是否要继续输入数据元素的值(Y/N)");
scanf("%c",&ch);
}while(ch=='Y'||ch=='y');
return;
}
页:
[1]