C语言新手小白一枚,求教各位鱼油~
在小甲鱼的C语言教程数组章节09最后的一个程序:#define M 10#include<stdio.h>
void main()
{
static int a = {-12,0,6,16,23,56,80,100,110,115};
int n, low, mid, high, found;
low=0;
high=M-1;
found=0;
printf("Input a number to be searched:\n");
#if(0)
do
{
scanf("%d", &n);
getcher();
}while(n<a||n>a);
#endif
while(scanf("%d",&n)!=1)
{
printf("illegal input!!\nplease input again!!\n");
getchar();
}
while(low <= high)
{
mid = (low+high)/2;
if(n == a)
{
found = 1;
break;
} /*找到,结束循环*/
else if(n > a)
low=mid+1;
else
high=mid-1;
}
if(found == 1)
printf("The index of %d is %d\n",n,mid);
else
printf("There is not%d\n",n);
}
上面标红的那段,我想问一下scanf函数在while语句中,作为一个判断条件,那程序是如何判断输入的呢?getchar吗?
在线等~~
scanf函数的返回值表示正确输入了几个变量,所以
while(scanf("%d",&n)!=1)就是说,当没有正确读入一个整数的时候就进入循环体{},循环中是错误处理,而正确正确读入一个整数的时候,scanf返回值是1,直接退出循环 非常感谢你热心地回答。但是我是想问scanf函数并没在while以外出现,那么,程序接受你输入的数据呢?
页:
[1]