#include<stdio.h>
#define N 10
int main()
{
int sort(int *x,int n); //聲明排序函數
int search(int *a,int n,int x); //聲明查找函數
int _delete(int *a,int n,int x); //聲明刪除函數
int i,a[N],*p1=a;
int b[N],m,*p2=b;
int number,t1,t2;
printf("請向數組輸入10個整數:");
for(i=0;i<N;i++)
scanf("%d",p1++);
printf("the original array:\n");
for(p1=a;p1<a+N;p1++)
printf("%5d",*p1);
printf("\n");
p1=a;
sort(p1,N);//調用排序函數
printf("the sorted array:\n");
for(;p1<a+10;p1++)
printf("%5d",*p1);
printf("\n");
printf("輸入一個你想要查找的數:\n");
scanf("%d",&number);
p1=a;
t1=search(p1,N,number);//調用查找函數
if(t1==0)
printf("查找失敗,無法繼續刪除數字!\n");
else
{
t2=_delete(p1,N,t1);//調用刪除函數
printf("查找成功的數組元素%d已被刪除:\n",t2);
printf("刪除後的新數組元素為:\n");
for(i=0;i<N-1;i++)
printf("%5d ",*p1++);
printf("\n");
printf("請插入一個整數 m:");
scanf("%d",&m);
p1=a;p2=b;
for(i=0;i<10;i++)
*(p2+i)=*(p1+i);
*(p2+N-1)=m;
sort(p2,N);
printf("最終的數組元素為:\n");
for(i=0;i<N;i++)
printf("%5d",b[i]);
}
printf("\n");
}
int sort(int *x,int n)
{
int i,j,k,temp;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(*(x+j)<*(x+k))
{
k=j;
}
if(k!=i)
{
temp=*(x+k);
*(x+k)=*(x+i);
*(x+i)=temp;
}
}
return 0;
}
int search(int *a,int n,int x)
{
int s=0,k,i;
for(i=0;i<n;i++)
if(a[i]==x)
{
s=a[i];k=i+1;
}
if(s==x)
{
printf("%d已被找到,它的位置是:%d\n",s,k);
}
else printf("查找失敗:\n");
return s;
}
int _delete(int *a,int n,int x)
{
int i,j=0,m;
for(i=0;i<n;i++)
if(a[i]!=x)a[j++]=a[i];
a[j]='\0';
m=x;
return m;
}