交城县政府网站:大大们请帮帮小弟 C程序问题

来源:百度文库 编辑:中科新闻网 时间:2024/05/11 05:15:07
有15个数按由小到大顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则打印出“无此数”。

就帮你个忙吧!我编译通过的!最好能给40分啊!开个玩笑
#define N 15
#include"stdio.h"
#include"string.h"
/*冒泡法排序*/
void sequence(int box[])
{ int i,j,temp;
for(i=N-1;i>0;i--)
for(j=0;j<i;j++)
if(box[j]>box[j+1]) {temp=box[j];box[j]=box[j+1];box[j+1]=temp;}
}
/*二分法查找算法*/
int search(int box[],int x,int l)
{ if(l==0||l==N-1) {printf("Not exist this number!");return 0;}
if(x==box[l]) {printf("Local is %d",l+1);return 0;}
else if(x<box[l]) {l/=2;search(box,x,l);}/*递归算法*/
else {l=(l+N)/2;search(box,x,l);}/*递归算法*/

}
main()
{ int box[N],i,a,len=N;
for(i=0;i<N;i++)
scanf("%d",box+i);printf("\n");
sequence(box);
for(i=0;i<N;i++)
printf("%d ",box[i]);printf("\n");
printf("input a number to search:");
scanf("%d",&a);printf("\n");
if(len%2) len/=2;else len=len/2+1;
search(box,a,len);
getch();
}

lin163mailbox 这点小钱你也挣 哈哈

给我20 块钱还可以考虑考虑。。。。。

太简单了吧,自己写