回 帖 发 新 帖 刷新版面

主题:[讨论]程序输出不理想 求助

#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 求助一下 大家帮我看看

回复列表 (共2个回复)

沙发

void main()
{
    sqlist L;
    listinit(L,ls);
    listinsert(L,1,1);
}

void listinit(sqlist L,int maxsize){}  
void listdelete(sqlist L,int i,int e){}

//此L非彼L,两个引用的不是同一个内存,应该传引用
void listinit(sqlist &L,int maxsize){}  
void listdelete(sqlist &L,int i,int e){}

板凳

楼上的 谢谢哦 
但是 我按照你写得 修改以后 还是不行啊
编译之后提示的错误
试验四.cpp
D:\Dev-Cpp\作品\试验四\试验四.cpp(18) : warning C4101: 'j' : unreferenced local variable
D:\Dev-Cpp\作品\试验四\试验四.cpp(20) : warning C4700: local variable 'L' used without having been initialized
Linking...
试验四.obj : error LNK2001: unresolved external symbol "void __cdecl listinsert(struct sqlist,int,int)" (?listinsert@@YAXUsqlist@@HH@Z)
试验四.obj : error LNK2001: unresolved external symbol "void __cdecl listinit(struct sqlist,int)" (?listinit@@YAXUsqlist@@H@Z)
Debug/试验四.exe : fatal error LNK1120: 2 unresolved externals
执行 link.exe 时出错.

我来回复

您尚未登录,请登录后再回复。点此登录或注册