编程实现在一维数组中查找

编程实现在一维数组中查找、插入和删除一个元素的操作。

 

 

#include “stdio.h”
#include “conio.h”
void main()
{ int x,i,j,k,found;
int a[11]={8,28,28,38,48,58,68,78,88,98};
printf(“请输入您要查找的一个整数:”);
scanf(“%d”,&x);
for(found=i=0;i<10;i++)
if(x==a[i]){ printf(“找到a[%d]=%d\n”,i,x);found++;}
if(found) printf(“共找到%d个元素等于%d.\n”,found,x);
else printf(“在数组中未找到您要查找的数!\n”);
/*对于已经按由小到大排好序的数组也可用如下算法进行折半查找:
for(found=i=0,k=10;i< k; )
if(x==a[(i+k)/2])
{ printf(“找到a[%d]=%d\n”,(i+k)/2,x); found++; k-=2;}
else if (x < a[(i+k)/2]) k=(i+k)/2;
else i=(i+k+1)/2;
if(found) printf(“共找到%d个元素等于%d.\n”,found,x);
else printf(“在数组中未找到您要查找的数!\n”);
*/
printf(“请输入需要插入的一个整数:”);
scanf(“%d”,&x);
k=10;
for(i=0;i<10;i++)
if(x < a[i]) {k=i; break; }
for(i=10;i>k;i–)
a[i]=a[i-1];
a[k]=x;
printf(“插入以后的数组为:”);
for (i=0;i<11;i++)
printf(“%5d”,a[i]);
printf(“\n”);
printf(“请输入需要删除的一个整数:”);
scanf(“%d”,&x);
i=0 ; j=10 ;
while(i<=j)
{ k=(i+j)/2 ;
if(a[k]==x) break;
if(a[k]>x) j=k-1;
if(a[k]< x) i=k+1;
}
if(i>j) printf(“需要删除的数不在数组中\n”);
else
{ for( ;k< 10;k++) a[k]=a[k+1];
printf(“删除以后的数组为:”);
for (i=0;i< 10;i++)
printf(“%5d”,a[i]);
}
getch();
}

© 版权声明
THE END
喜欢就支持以下吧
点赞22 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容