题目:创建一个静态的顺序表存放整数,大小为10,完成以下操作:
(1)输入6个整数,并输出顺序表内容,并显示剩余空间个数
(2)在顺序表的第3个位置插入0,并输出顺序表内容,并显示剩余空间个数
(3)在顺序表的第11个位置插入0,显示为非法
(4)删除顺序表的第6个位置的整数,并输出顺序表内容,并显示剩余空间个数
程序代码:
#include <stdio.h>
#include <stdlib.h>
#define Maxsize 10
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
void insertelem(int Sqlist[],int *len,int i,int x){ // i为插入位置,x为插入的数值
int t;
if(i<1 || i>*len+1 || *len==Maxsize){ //插入的范围是:1~n+1
printf("非法输入\n");
return;
}
for(t=*len-1;t>=i-1;t--){
Sqlist[t+1]=Sqlist[t];
}
Sqlist[i-1] = x;
*len = *len+1;
}
void deletelem(int Sqlist[],int *len,int i){ // i为删除位置
int j;
if(i<1 || i>*len){ //删除的范围是:1~n
printf("非法删除\n");
return;
}
for(j=i;j<=*len-1;j++){
Sqlist[j-1]=Sqlist[j];
}
*len = *len-1;
}
int main(int argc, char *argv[]) {
int Sqlist[Maxsize];
int len;
int i;
for(i=0;i<6;i++){
scanf("%d",&Sqlist[i]);
}
printf("***********************************************\n");
len = 6;
for(i=0;i<len;i++){
printf("%d ",Sqlist[i]);
}
printf("\n表中剩余的空间是:%d",Maxsize-len);
printf("\n***********************************************");
insertelem(Sqlist,&len,3,0);
printf("\n在第3个位置插入0后:\n");
for(i=0;i<len;i++){
printf("%d ",Sqlist[i]);
}
printf("\n表中剩余的空间是:%d",Maxsize-len);
printf("\n***********************************************");
printf("\n在第11个位置插入0后:\n");
insertelem(Sqlist,&len,11,0);
printf("\n***********************************************");
deletelem(Sqlist,&len,6);
printf("\n删除第6个位置的数后:");
for(i=0;i<len;i++){
printf("%d ",Sqlist[i]);
}
printf("\n表中剩余的空间是:%d",Maxsize-len);
return 0;
}
运行结果: