你的意思是输入升序数组,再用折半查找输入的数在数组足的位置?
也太复杂了吧看你弄的。
帮你改了下,还有吗弄那么多变量出来干吗?可以写成一个函数吧?你自己再精简下吧。
#include
void main()
{
int a(int b[6]);
int c[6],i,j,t;
printf("shu ru c[0]:\n"); /*是c才以对吧 */
scanf("%d",&c[0]);
printf("shu ru qi ta yuan shu c[1]-c[5]:\n");
for(i=1;i<=5;i++)
{ j=i;
scanf("%d",&c[i]);
if(c[i]>=c[i-1]);
else
{ printf("chong xin shu ru:\n");
i=j-1;
}
}
t=a(c);
printf("zai shu zu zhong de xia biao wei:%d",t);
}
int a(int b[6])
{ int p=1,r,w,y,z,num,f;
char v;
printf("shu ru yi ge shu:\n");
scanf("%d",&num);
if(numb[5])
r=-1;
while(p)
{ w=0;
y=5;
while((p==1)&&(w<=y))
{ z=(w+y)/2;
if(num==b[z]) /******和数组比较吧?在1 2 3 4 5里面比有意义吗?******/
{ f=z+1;/****应该是加1吧才是他的位置吧?******/
return(f);
p=0;/*不用了,都退出了,他不会再运行了*/
}
else if(num>b[z]) /**********/
w=num+1;
else
y=num-1;
}
if((r==-1)||(p==1))
printf("bu zai shu zu nei:\n");
printf("shu ru shi fou ji xv:\n");
scanf("%c",&v);
if(v=='N'||v=='n')
p=0;
}
}