主题:静态链表数据读入出错的问题
typedef struct staticList
{
componentType data;
int cur;
}component;
int temp;
component sl[N];
这是定义的数据类型,静态链表
int slMalloc(component sl[])
{
int i=sl[0].cur;
if(sl[0].cur) sl[0].cur=sl[i].cur;
return i;
}
这是静态链表空间分配的实现,每次只分配一个单位,以下标形式反回
for(i=0;i<m;i++)
{
temps=slMalloc(sl);
fflush(stdin);
sl[temps].data=getchar(); //using scanf("%c",&sl[temps].data) will be fault too
sl[atail].cur=temps;
atail=temps;
}
sl[atail].cur=0;
这是对静态链表sl[]的输入,共输入m个元素
当没有fflush(stdin)这一句清空键盘缓冲区时就不能正确读入数据,第一次总有一个未知数据被读入,这是怎么回事
整个程序我贴在http://www.programfan.com/club/showbbs.asp?id=159422
有空能不能帮我看看错哪了
{
componentType data;
int cur;
}component;
int temp;
component sl[N];
这是定义的数据类型,静态链表
int slMalloc(component sl[])
{
int i=sl[0].cur;
if(sl[0].cur) sl[0].cur=sl[i].cur;
return i;
}
这是静态链表空间分配的实现,每次只分配一个单位,以下标形式反回
for(i=0;i<m;i++)
{
temps=slMalloc(sl);
fflush(stdin);
sl[temps].data=getchar(); //using scanf("%c",&sl[temps].data) will be fault too
sl[atail].cur=temps;
atail=temps;
}
sl[atail].cur=0;
这是对静态链表sl[]的输入,共输入m个元素
当没有fflush(stdin)这一句清空键盘缓冲区时就不能正确读入数据,第一次总有一个未知数据被读入,这是怎么回事
整个程序我贴在http://www.programfan.com/club/showbbs.asp?id=159422
有空能不能帮我看看错哪了