请师兄们进来帮我看一条题
大家好,小弟是新来的,有一题请教,清高手策教!题目;有15个数组按由小到大顺序存放到一个数组中,输入一个数,要求用折半查找法出该数是组中第几个元素的值.如果该数不在数组中,打印出"不在表中"
大家帮我看一下我的答案哪里错了,为什么调试不了.
#include<stdio.h>
#define N 15
main()
{
int i=0,min,bott,topp,bacon,flag;
int a[N],c;
scanf("%d",&a[0]);
i=1;
while(i<N)
{ scanf("%d,&a[i]);
if(a[i]>=a[i-1])
i++;
else
printf("输入错误,必须比前一个数大,请重新输入\n");
}
flag=1;
while(flag)
{ printf("输入你要查找的号码");
scanf("%d",&c);
bott=N-1;
bacon=0;
topp=0;
if(c<a[0]&&c>a[N-1])
bacon=-1;
else
while((topp<=bott)&&(bacon==0))
{
min=(bott++topp)/2;
if(c==a[min])
{bacon=1;
printf("%d在表中的第%d位\n",c,min+1);
}
else
if(c<a[min])
bott=min-1;
else
topp=min+1;
}
if(bacon==0||bacon==-1)
printf("输入的数字%d不在表中\n",c);
printf("是否继续输入Y/N?\n");
c=getchar();
if(c=='n'||c=='N')
flag=0;
else
flag=1;
}
}