//顺序存储结构下线性表La的逆序(int) 5C

//顺序存储结构下线性表La的逆序(int)
#include
#include
#define len 100
#define increse_len 10
typedef struct LIST
{
int *elem;

int length; //当前长度
int list_size; //当前容量
}LIST,*pLIST;
pLIST craet()
{
int data=0;
pLIST L,newbase;
L->elem=(int *)malloc( len*sizeof(int) ); //初始申请空间100个
if(!L) //判断是否申请成功
exit(0);
L->length=0; //初始长度
L->list_size=len; //初始容量
printf("请输入: ");scanf("%d",&data); //输入第一个数据
while(data!=0) //判断数据是否为0
{
for(;L->length < L->list_size;)
{
L->elem[L->length++]=data; //按顺序保存数据
scanf("%d",&data); //再次输入
if(data==0) //判断是否为0
exit(0);
}
if(L->length==L->list_size); //长度超出
{
L->list_size+=increse_len; //添加长度并更改长度值
newbase->elem=(int *)realloc(L->elem,L->list_size*sizeof(int)); //重新分配长度
if(!newbase->elem)
exit(0);
L->elem=newbase->elem;
}
}
return L; //返回地址
}
void printA(pLIST pHead) //顺序输出
{
while(pHead->elem!=0)
{
printf("\t%d",pHead->elem++);
pHead++;
}
printf("\n");
}
void printB(pLIST pHead)
{
if(pHead->elem!=0)
{
printB(++pHead);
if(pHead->elem!=0) //识别到开始位置的标记符号,不满足意思还没到最开始
printf("\t%d",pHead->elem);
}
}
void main()
{
pLIST head;
printf("非0数据的保存(以输入0为标志结束输入)\n");
head=creat();
printf("\n");
printf("顺序输出: ");
printA(head);
printf("逆序输出: ");
printB(head);
printf("\n\n");
}
不知道这个问题出现在哪里,看了三个小时了,大神帮帮忙 调整

3个回答

刚开始学,但是老找不到问题是在哪里

love_XIAOHEI
早安小黑 不想要连接啊,我自己也可以百度到这个,但是我想弄懂我这个是哪里出错了
大约 2 年之前 回复

看看我这个代码要怎么修改,我想改我这个

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问