#include<stdio.h>
#include<malloc.h>
#define initsize 20
#define increment 3
typedef struct
{
int *elem;
int length,size;
}sqlist;
int *p;
void init(sqlist &l)
{
l.elem=(int*)malloc(sizeof(int)*initsize);
l.length=0;
l.size=initsize;
}
sqlist create()//这里错了,为什么,求解??谢谢~~
{ sqlist l;
for(p=l.elem;p<=l.elem+l.length-1;p++)
scanf("%d",p);
return l;
}
void output(sqlist l)
{
for(p=l.elem;p<=l.elem+l.length-1;p++)
printf("%d",*p);
}
void insert(sqlist &l,int x)
{
int *q;p=l.elem;
if(l.length>=l.size)
{
l.elem=(int*)realloc(l.elem,(l.size+increment)*sizeof(int));
l.size+=increment;
}
while(*p<=x&&p<l.elem+l.length-1)
p++;
for(q=l.elem+l.length-1;q>=p;q--)
{
*(q+1)=*q;
}
*p=x;
l.length++;
}
main()
{
sqlist l;int x;
init(l);
scanf("%d",&l.length);
l=create();
output(l);
scanf("%d",&x);
insert(l,x);
output(l);
}
sqlist create()有错,求解??谢谢 |