我的顺序表程序一运行就会弹出 顺序表.exe 已停止工作 求大侠帮忙看一下 到底问题出现在哪里? 感激不尽!

主函数是#definemaxsize100typedefintdatatype;#include<stdio.h>#include"hh.h"voidmain(){sql... 主函数是
#define maxsize 100
typedef int datatype;
#include<stdio.h>
#include"hh.h"

void main()
{
sqlist mylist;
int n,x,i;
printf("enter the number of elements:");
scanf("%d",&n);

for(i=0;i<n;i++)
{
printf("enter the %st number:",i+1);
scanf("%d",&x);
mylist.list[i]=x;
}

//insert(&l,6,99);
printf("print l:\n");

print(&mylist);
}
头文件#include"hh.h"
typedef struct
{
datatype list[maxsize];
int length;
}sqlist;

void initiate(sqlist *l)
{
l->length=0;
}

int length(sqlist *l)
{
return l->length;
}

int insert(sqlist *l,int i,datatype x)
{
int j;
if(l->length==maxsize)
{
printf("已满元素不可插!\n");
return 0;
}
else if(i<1 || i>l->length+1)
{
printf("参数出错!\n");
return 0;
}
else
{
for(j=l->length-1;j>=i-1;j--)
l->list[j+1]=l->list[j];
l->list[i-1]=x;
l->length++;
return 1;
}
}

int deletewithoutx(sqlist *l,int i)
{
int j;
if(l->length==0)
{
printf("表是空的,不可删!\n");
return 0;
}
else if(i<1 || i>l->length)
{
printf("参数出错!\n");
return 0;
}
else
{
for(j=i;j<=l->length-1;j++)
l->list[j-1]=l->list[j];
l->length--;
return 1;
}
}

int deletewithx(sqlist *l,int i,datatype *x)
{
int j;
if(l->length==0)
{
printf("表示空的,元素不可删!\n");
return 0;
}
else if(i<1 || i>l->length)
{
printf("参数出错!\n");
return 0;
}
else
{
*x=l->list[i-1];
for(j=i/* 这里是要将第i个后面的一个数字向前移前,覆盖第i个元素*/;j<=l->length-1;j++)
l->list[j-1]=l->list[j];
l->length--;
return 1;
}
}

void print(sqlist *l)
{
int i;
for(i=0;i<=l->length-1;i++)
printf("%d",l->list[i]);
printf("\n");
}
大意思通过键盘使用scanf语句输入自己想要输入的顺序表元素
本来是想输入五个元素 然后在第六个位置插入99
可惜一运行 输入一个5之后就显示 顺序表.exe 停止工作了 就注释掉了那句
哪位大侠可以帮忙看一下?谢谢!
展开
 我来答
百度网友c8e8cfc
2012-06-14
知道答主
回答量:8
采纳率:0%
帮助的人:6.1万
展开全部
for(j=l->length-1;j>=i-1;j--) ?不是<=么?
追问
for(j=l->length-1;j>=i-1;j--)
应该是 j>=i-1呀 我从最后一个元素开始移动元素
最后到达要插入的元素位置 list[i-1]
追答
粗心马虎啊!
printf("enter the %st number:",i+1);
你少了个d,该是%dst。%s,编译器认为是字符串,导致访问越界,产生错误的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式