#include<stdio.h>
void main()
{
int i,flag=1,sign,top,btt,mid,s,weizhi;
int a[15];
char c;
printf(" 请输入15个数\n");
scanf("%d",&a[0]);
for(i=1;i<15;)
{
scanf("%d",&a
);
if(a>a[i-1])
i++;
else
printf("输入错误,请重新输入!!!\n");
}
for(i=0;i<15;i++)
printf("%d\n",a);
while(flag==1)
{
printf("请输入要查找的数\n");
scanf("%d",&s);
sign=0;
top=0;
btt=14;
if((s>a[14])||(s<a[0]))
weizhi=-1;
while((sign==0)&&(top<=btt))
{
mid=(top+btt)/2;
if(s==a[mid])
{
weizhi=mid;
printf("第%d个数\n",weizhi+1);
sign=1;
}
else if((s>a[mid]))
top=mid+1;
else
btt=mid-1;
}
if(sign==0||weizhi==-1)
printf("未找到\n");
printf("continue or not(Y/N)?\n");
scanf("%c",&c);
if(c=='N'||c=='n')
flag=0;
}
}
就是二分法查找所输入的数,在程序最后几句
printf("continue or not(Y/N)?\n");
scanf("%c",&c);
if(c=='N'||c=='n')
flag=0
本来要判断是否继续查找,如果输入n则结束,否则继续查找,但是我在运行时发现似乎
scanf("%c",&c);
if(c=='N'||c=='n')
flag=0
这几句失去作用了,运行情况是这样的,见图,就是程序在输出continue or not(Y/N)?后直接输出“请输入要查找的数”,而本来是应该在我输入一字符再判断后才这样的,谁能说说这是怎么回事啊