#include<stdio.h> #define MaxSize 10 /*以下*len代表数组大小 i代表要第几个数字(要执行插入的数字) x代表插入的数字*/ void insertElem(int Sqlist[],int *len,int i,int x) { int t; if(*len==MaxSize||i<1||i>*len+1) { printf("err"); return; } for(t=*len-1;t>=i-1;t--)/*这个for循环将Sqlist列表中的值赋值为下一个值*/ { Sqlist[t+1]=Sqlist[t]; } Sqlist[i-1]=x; /*将插入的值赋给所处位置*/ *len=*len+1;/*设置*len 也就是数组大小加一*/ } /*len代表数组大小 i代表要删除的位数*/ void delElem(int Sqlist[],int *len,int i) { int a; if(i<1||i>*len) { printf("err"); return; } for(a=i;a<=*len;a++) { Sqlist[a-1]=Sqlist[a];/*将上一个值赋给现在这个值*/ } *len=*len-1;/*设置数组大小减一*/ } main() { int Sqlist[MaxSize]; int len; int i; printf("input 6 number\n"); for(i=0;i<6;i++) { scanf("%d",&Sqlist[i]); } len=6; for(i=0;i<6;i++)/*这个循环输出刚刚输入的数组*/ { printf("%d",Sqlist[i]); } printf("\n剩余空间%d\n",MaxSize-len); insertElem(Sqlist,&len,3,0);/*插入0到第三个位置*/ for(i=0;i<6;i++)/*循环输出插入后的数组的前6个数字*/ printf("%d",Sqlist[i]); printf("\n剩余空间%d\n",MaxSize-len); delElem(Sqlist,&len,2);/*删除第二个位置的数字*/ for(i=0;i<6;i++)/*循环输出删除第二个位置后的6个数字*/ printf("%d",Sqlist[i]); printf("\n剩余空间%d",MaxSize-len); }
/*默认输入 1 2 3 4 5 6 这6个数字 */ 输出为: 123456 空余空间4 120345 空余空间3 103456 空余空间4