首页 新闻 会员 周边 捐助

可以运行的线性表 但是为什么没有输出???

0
悬赏园豆:5 [已解决问题] 解决于 2015-12-02 17:30

#include<stdio.h>
#include<stdlib.h>
typedef int ElemType;
typedef struct
{
    ElemType *elem; /* 存储空间基址 */
    int length; /* 当前长度 */
    int listsize; /* 当前分配的存储容量(以sizeof(ElemType)为单位) */
} SqList;

void InitList(SqList &L) /* 算法2.3 */
{
    /* 操作结果:构造一个空的顺序线性表 */
    L.elem=(ElemType*)malloc(10*sizeof(ElemType));
    if(!L.elem)
        printf("ERROR!\n"); /* 存储分配失败 */
    L.length=0; /* 空表长度为0 */
    L.listsize=100; /* 初始存储容量 */

}
int ListAdd(SqList &L,ElemType n)
{
    if(L.length >=L.listsize)
    {
        ElemType*newbase=(ElemType*)realloc(L.elem,(L.listsize+10)*sizeof(ElemType));
        if(!newbase)
        return -1;
        L.elem=newbase;
        L.listsize+=10;
    }
    int *q=&(L.elem[L.length]);
    *q=n;
    ++L.length;
    return 0;
}
void ListGet(SqList &L)
{
    int x=L.length;
    if(L.length<=0)
       printf("ERROR");
       return ;
    while(L.length>0)
    {
        L.length--;
        printf("%d",L.elem[L.length]);

    }
    L.length=x;
}
int getlength(SqList &L)
{
    return L.length;
}
int main()
{
    int n;
    SqList sqlist;
    InitList(sqlist);
    while(!scanf("%d",&n))
    {
      ListAdd(sqlist,n);
    }
    printf("%d\n",getlength(sqlist));
    ListGet(sqlist);
    return 0;
}

零魂的主页 零魂 | 初学一级 | 园豆:135
提问于:2015-12-02 16:08
< >
分享
最佳答案
1

嗯,看到问题就知道你是学生了。有几个问题,请看下列图片。

问题1:

问题2:

问题3:

忠告:问题已经出来了,解决方法我也有,先不告诉你。自己先尝试着解决一下吧。自己写的代码要自己负责检查。这样你才能成长的更快。

收获园豆:5
[0] | 小虾三级 |园豆:1257 | 2015-12-02 17:23

谢谢您  我明白了  感谢您的指导

零魂 | 园豆:135 (初学一级) | 2015-12-02 17:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册