#define MAX 50
int insert(int a[],int n,int i,int x)
{
int j;
if(n+1>MAX)
printf("無插入空間\n");? //數組只能存MAX個數
else if(i<1||i>n+1)
printf("插入位置非法\n"); //插入位置的範圍為1..n+1
else
{
for(j=n-1;j>i-2;j--)
a[j+1]=a[j]; //將數組中i位置及其後面的數,依次向後移動壹格
a[i-1]=x;? //在i位置插入x
n++;
}
return n; //返回當前數組大小
}
int del(int a[],int n,int i)
{
int j;
if(i<1||i>n)
printf("刪除位置非法\n");
else
{
for(j=i-1;j<n-1;j++)
a[j] = a[j+1];
n--;
}
return n;
}
int search(int a[],int n,int x)
{
int i;
for(i=0;i<n;i++)
{
if(a[i]==x)
return i+1;
}
return -1;
}
void printArray(int a[],int n)
{
int i;
for(i=0;;i++)
{
if(i==n-1)
{
printf("%d\n",a[i]);
break;
}
printf("%d ",a[i]);
}
}
void main()
{
int n,i,a[MAX];
int index,x;
printf("輸入數組中的元素個數\n");
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("請輸入要插入的位置和插入的數\n");
scanf("%d %d",&index,&x);?
n = insert(a,n,index,x);
printArray(a,n);
printf("請輸入要刪除元素的位置\n");
scanf("%d",&index);
n = del(a,n,index);
printArray(a,n);
printf("請輸入要查詢的元素\n");
scanf("%d",&x);
i = search(a,n,x);
if(i!=-1)
printf("%d的位置:%d\n",x,i);
else
printf("未找到%d\n",x);
}
望采納~