救救菜鸟新鱼油
本鱼油很菜,初学顺序表,c语言也学的不好,能不能帮我看看下面的代码怎么改,调试的时候一直报错。问题在于下面的 int LocateELem 这一段的
L.elem==e 会报错,不知道怎么改
#include <iostream>
using namespace std;
#define MAXSIZE 100
#define OK 1
#define ERROR 0
typedef struct
{
char ch;
}ElemType;
typedef int Status;
typedef struct
{
ElemType *elem; //储存空间的新地址
int length;//当前长度
}SpList;//顺序表的类型为SpList
Status IntList(SpList &L)
{//建造一个空的顺序表L
L.elem = new ElemType;
if (!L.elem) exit(OVERFLOW);
L.length = 0;
return OK;
}
Status GetElem(SpList L, int i, ElemType &e)
{
if (i<1 || i>L.length) return ERROR; //判断i值是否合理,若不合理,返回ERROR
e = L.elem; //elem单元储存第i个数据元素
return OK;
}
int LocateELem(SpList L, ElemType e, int i)
{//在顺序表L中查找值为e的数据元素,返回其序号
for (i = 0;i < L.length;i++)
if (L.elem==e) return i+1;//查找成功,返回序号i+1
return 0;//查找失败,返回0
}
Status ListInsert(SpList & L, int i, ElemType e, int j)
{ //在顺序表L中第i个位置之前插入元素阿,i值的合法范围是1<=i<=L.length+1
if((i < 1) || (i > L.length + 1) ) return ERROR;//i值不合法
if (L.length == MAXSIZE) return ERROR;//当前储存空间已满
for (j = L.length - 1;j >= 1 - 1;j--)
L.elem;//插入位置及之后的元素后移
L.elem = e;//将新元素e放入第i个位置
++L.length;//表长+1
return OK;
}
帮帮新鱼油吧 求求了 看看 谢谢 本帖最后由 dolly_yos2 于 2022-10-24 15:56 编辑
这可能不是这个帖子几乎没人理的全部原因,不过请您看看自己的帖子,给出的代码完整吗,格式清晰吗?
绝对不求“很菜,初学顺序表,c语言也学的不好”的朋友就能逻辑清晰调理明确,至少该换行的地方换行该空格的地方空格吧?把代码用论坛的代码格式贴上来让其他人能看清楚吧?
既然知道某个地方“调试的时候一直报错”,您看是不是把代码给全、把复现方法(调试用的操作过程、输入的数据)说明白其他人就能更有机会更快的找到问题了?
如果需要插入代码段的帮助的话: https://fishc.com.cn/thread-128631-1-1.html 楼上说得在理
页:
[1]