你在输入缓冲区输入时(以回车为结束标志),scanf函数会读取回车前的内容,而回车是也是一个字符'\n',它的存在会影响之后getchar();函数的读取。
for循环相对于while循环的优势:若语句中有continue,while循环会直接跳到判断表达式,而for循环在进入判断前,还有个调整表达式ex3。
二分查找
int main ()
{
int left=0;
int right=5;
int a[]={1,2,3,4,5,6,7,9};
int subscript=-1;
while(right>=left)
{
int mid=(left+right)/2;
if(a[mid]>x)
{
right=mid-1;
}
else if(a[mid]<x)
{
left=mid+1;
}
else
{
subscript= mid;
}
}
if(subscript==-1)
{
printf("can not find ");
}
else
{
printf(it is a[%d]",subscript);
}
}