静态顺序表相关操作
题目要求:1.输入6个整数,打印输出,并显示剩余空间个数
2.在顺序表的第三个位置插入元素0,打印输出表中内容,并显示剩余空间个数
3.再试图插入表中第11个元素0时(最大为空间数位10),程序提示错误
4.删除表中第6个元素,打印表中内容,并显示剩余空间个数
我写的代码:
#include<stdio.h>
#define Maxsize 10
void insertElem(int Sqlist[],int len,int i,int x)
{
int t;
if(len==Maxsize|| i<1 || i>len+1)
{
puts("Error!");
return;
}
for(t=len-1;t>=i-1;i--)
Sqlist[t+1]=Sqlist[t];
Sqlist[i-1]=x;
len=len+1;
}
void DelElem(int Sqlist[],int len,int i)
{
int j;
if(i<1||i>len)
{
puts("Error!");
return;
}
for(j=i;j<=len-1;j++)
{
Sqlist[j-1]=Sqlist[j];
}
len=len-1;
}
int main(void)
{
int Sqlist[Maxsize];
int len;
int i;
puts("please input the numbers:");
for(i=0;i<6;i++)
{
scanf("%d",&Sqlist[i]);
}
len=6;
for(i=0;i<6;i++)
{
printf("%5d",Sqlist[i]);
}
printf("\n");
printf("The spare length is %d\n",Maxsize-len);
insertElem(Sqlist,len,3,0);
for(i=0;i<len;i++)
{
printf("%5d",Sqlist[i]);
}
printf("\nThe spare length is %d\n",Maxsize-len);
insertElem(Sqlist,len,11,0);
DelElem(Sqlist,len,6);
for(i=0;i<len;i++)
{
printf("%5%",Sqlist[i]);
}
printf("\nThe spare length is %d\n",Maxsize-len);
return 0;
}
编译没有错误,显示的结果错误,如下:
不知道哪里错了,求高手指教!