#include<stdio.h>
#include<malloc.h>
#define initsize 10
typedef struct
{
int *elem;
int length,size;
}sqlist;
int *p;
void init(sqlist &s)
{
s.elem=(int *)malloc(sizeof(int)*initsize);
s.length=0;
s.size=initsize;
}
sqlist create()
{
sqlist s;
for(p=s.elem;p<=s.elem+s.length-1;p++)
scanf("%d",p);
return s;
}
void insert(sqlist &s,int x)//递增顺序,x根据其大小插入
{ p=s.elem;
while(*p<x) p++;
int *q;q=s.elem+s.length-1;
for(;q>=p;q--)
{
*(q+1)=*q;
}
*p=x;s.length++;
}
void output(sqlist s)
{ for(p=s.elem;p<=s.elem+s.length-1;p++)
printf(" %d",*p);
}
main()
{sqlist s;int x;
init(s);
printf("\n输入顺序表的长度:");
scanf("%d",&s.length);
s=create();
output(s);//运行到这里就有问题,为什么??
printf("\n输入x=");
scanf("%d",&x);
insert(s,x);
printf("\n结果是:");
output(s);
printf("\n");
}
please