创建一个链式线性表,输入a,b,c,d,e,f这6个字符,并显示第三个
这是我的代码:
#include <stdio.h>
#include <stdlib.h>
typedef struct LNode
{
char data;
struct LNode *next;
}LNode,*LinkList;
void CreateList_L(LinkList &L,int n)
{
int i;
LNode *p;
L = (LinkList) malloc (sizeof (LNode));
L->next = NULL;
for (i = n;i > 0;-- i)
{
p = (LinkList) malloc (sizeof (LNode));
scanf_s(&p->data);
fflush(stdin);//清空键盘缓冲区
p->next = L->next;L->next = p;
}
}
void GetElem_L(LinkList L,int i)
{
LinkList &p = L->next;
int j = 1;
while (p && j < i)
{
p = p->next;
++j;
}
if (!p || j <i)
printf("ERROR");
printf("%c",p->data);
}
void main()
{
LNode *Q;
CreateList_L(Q,6);
GetElem_L(Q,3);
}
我用VS2008编译的,为什么最后没有输出啊?
这是我的代码:
#include <stdio.h>
#include <stdlib.h>
typedef struct LNode
{
char data;
struct LNode *next;
}LNode,*LinkList;
void CreateList_L(LinkList &L,int n)
{
int i;
LNode *p;
L = (LinkList) malloc (sizeof (LNode));
L->next = NULL;
for (i = n;i > 0;-- i)
{
p = (LinkList) malloc (sizeof (LNode));
scanf_s(&p->data);
fflush(stdin);//清空键盘缓冲区
p->next = L->next;L->next = p;
}
}
void GetElem_L(LinkList L,int i)
{
LinkList &p = L->next;
int j = 1;
while (p && j < i)
{
p = p->next;
++j;
}
if (!p || j <i)
printf("ERROR");
printf("%c",p->data);
}
void main()
{
LNode *Q;
CreateList_L(Q,6);
GetElem_L(Q,3);
}
我用VS2008编译的,为什么最后没有输出啊?