主题:[讨论]程序输出不理想 求助
#include<iostream.h>
#include<process.h>
int ls=1000;
typedef struct {
int *elem;
int length;
int listsize;
int incrementsize;
}sqlist;
void ErrorMessage(char *s);
void listinit(sqlist,int);
void listinsert(sqlist,int,int);
void listdelete(sqlist,int,int);
void main()
{
sqlist L;
listinit(L,ls);
listinsert(L,1,1);
cout << *L.elem << endl;
cout << L.length << endl;
}
void listinit(sqlist L,int maxsize)
{
L.elem=new int[maxsize];
L.length=0;
L.listsize=maxsize;
}
void listinsert(sqlist L,int i,int e)
{
++L.length;
int *p,*q;
if((i<1)||(i>L.length+1)) ErrorMessage("error");
if(L.length==1) *(L.elem)=e;
else
{
q=L.elem+i-1;
p=L.elem+L.length-1;
for(p;p>=q;p--) *(p+1)=*p;
*(L.elem+i-1)=e;
}
}
void listdelete(sqlist L,int i,int e)
{
int *p,*q;
if((i<1)||(i>L.length)) ErrorMessage("error");
p=L.elem+i-1;
e=*p;
q=L.elem+L.length-1;
for(++p;p<=q;++p) *(p-1)=*p;/*元素左移,注意 执行*(p-1)=*p后,p值改变 */
--L.length;
}
void ErrorMessage(char *s)
{
cout<< s <<endl;
exit(1);
}
这是一个初级的数据结构的线性表的程序 我写了之后 本来想输出1 1得
结果输出error 求助一下 大家帮我看看
#include<process.h>
int ls=1000;
typedef struct {
int *elem;
int length;
int listsize;
int incrementsize;
}sqlist;
void ErrorMessage(char *s);
void listinit(sqlist,int);
void listinsert(sqlist,int,int);
void listdelete(sqlist,int,int);
void main()
{
sqlist L;
listinit(L,ls);
listinsert(L,1,1);
cout << *L.elem << endl;
cout << L.length << endl;
}
void listinit(sqlist L,int maxsize)
{
L.elem=new int[maxsize];
L.length=0;
L.listsize=maxsize;
}
void listinsert(sqlist L,int i,int e)
{
++L.length;
int *p,*q;
if((i<1)||(i>L.length+1)) ErrorMessage("error");
if(L.length==1) *(L.elem)=e;
else
{
q=L.elem+i-1;
p=L.elem+L.length-1;
for(p;p>=q;p--) *(p+1)=*p;
*(L.elem+i-1)=e;
}
}
void listdelete(sqlist L,int i,int e)
{
int *p,*q;
if((i<1)||(i>L.length)) ErrorMessage("error");
p=L.elem+i-1;
e=*p;
q=L.elem+L.length-1;
for(++p;p<=q;++p) *(p-1)=*p;/*元素左移,注意 执行*(p-1)=*p后,p值改变 */
--L.length;
}
void ErrorMessage(char *s)
{
cout<< s <<endl;
exit(1);
}
这是一个初级的数据结构的线性表的程序 我写了之后 本来想输出1 1得
结果输出error 求助一下 大家帮我看看