C语言数据结构问题

请你定义一个顺序表,可以对顺序表进行如下操作:在某个元素之前插入一些元素删除某个位置的元素查找某元素获取某个位置的元素遍历输出所有元素键盘输入一些命令,可以执行上述操作。... 请你定义一个顺序表,可以对顺序表进行如下操作:
在某个元素之前插入一些元素
删除某个位置的元素
查找某元素
获取某个位置的元素
遍历输出所有元素
键盘输入一些命令,可以执行上述操作。本题中,顺序表元素为整数,顺序表的第一个元素位置为1,顺序表的最大长度为20。
#include <iostream>

using namespace std;

const int MaxSize = 20;

class SeqList
{
public:
//SeqList(int data[], int n);
SeqList();
void Insert(int i,int x);
//~SeqList();
protected:
int length;
int data[MaxSize];
};

int main()
{
SeqList q;
char c;
int n;
int a;
int b;

cin >> c;

while (c != 'E')
{
switch(c)
{
case 'I':
{
cin >> n;

while (n--)
{
cin >> a>> b;

q.Insert(a, b);
}
}
}
}

return 0;
}

SeqList::SeqList()
{
length = 0;
}

void SeqList::Insert(int i, int x)
{
int j;

if (length > MaxSize)
throw "上溢";
if (i<1 || i>length+1)
throw "位置不正确";

for (j=length; j>=i; j--)
{
data[j] = data[j-1];
}

data[i-1] = x;

length++;
}为什么我输入错误的位置它什么都不提示,就直接崩溃了?这个程序怎么总是崩?哪里出错了
展开
 我来答
百度网友fa09700
2015-09-21 · TA获得超过414个赞
知道小有建树答主
回答量:266
采纳率:85%
帮助的人:130万
展开全部
-1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
越界| 合法范围 |越界
我的理解是
错误位置是不是超出了数组所设定的20的大小,即超出合法范围。
如果是这样的话,你对未知内存区域(您提到的错误未知)进行赋值,程序基本都会蹦。
woshidabaibai
2015-09-21 · 超过10用户采纳过TA的回答
知道答主
回答量:141
采纳率:0%
帮助的人:11.2万
展开全部
你自己不会单步调试?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式