15060491615 发表于 2022-10-24 02:00:23

救救菜鸟新鱼油

本鱼油很菜,初学顺序表,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;       
                }

帮帮新鱼油吧

15060491615 发表于 2022-10-24 02:02:03

求求了

claud321 发表于 2022-10-24 14:54:31

看看 谢谢

dolly_yos2 发表于 2022-10-24 15:54:14

本帖最后由 dolly_yos2 于 2022-10-24 15:56 编辑

这可能不是这个帖子几乎没人理的全部原因,不过请您看看自己的帖子,给出的代码完整吗,格式清晰吗?
绝对不求“很菜,初学顺序表,c语言也学的不好”的朋友就能逻辑清晰调理明确,至少该换行的地方换行该空格的地方空格吧?把代码用论坛的代码格式贴上来让其他人能看清楚吧?
既然知道某个地方“调试的时候一直报错”,您看是不是把代码给全、把复现方法(调试用的操作过程、输入的数据)说明白其他人就能更有机会更快的找到问题了?
如果需要插入代码段的帮助的话: https://fishc.com.cn/thread-128631-1-1.html

当初约定 发表于 2022-10-26 10:31:23

楼上说得在理
页: [1]
查看完整版本: 救救菜鸟新鱼油