回 帖 发 新 帖 刷新版面

主题:静态链表数据读入出错的问题

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
有空能不能帮我看看错哪了 

回复列表 (共2个回复)

沙发

都这么长时间了,怎么没人回我???

板凳

你有没有初始化静态链表?

我来回复

您尚未登录,请登录后再回复。点此登录或注册