scanf(" %c",&c);} //此处的%前必须加空格,不加空格就没法运行?? 这是为什么?

int main()
{
int a[15]={1,43,67,88,90,93,101,110,123,124,333,423,567,654,743},i=7,n,t,p,q;
char c='y';
while (c=='y')
{
printf("请输入一个数字:");
scanf("%d",&n);
t=0;
q=4;
for (p=4;p>0;p--)
{
if (n==a[i])
{
printf("正确!%d是第%d个数字。\n",n,i+1);
t=1;
c='n';
break;
}
else i=(n>a[i])?i+q:i-q;
q=q/2;
}
if (t==0)
{printf("无此数\n");
printf("还要继续猜下去吗?(y/n)\n");
scanf(" %c",&c);} //此处的%前必须加空格,不加空格就没法运行??
}
return 0;
}

printf("请输入一个数字:");
scanf("%d",&n); 因为你在这里输入的时候 系统接收了个字符和你按的回车换行符 而只把字符给了变量n 说明还有个换行符留在缓存中 scanf(" %c",&c); 所以这个空格是接收换行符的 如果没有空格 系统会直接把换行符赋值给c 自然不会要你输入了
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-23
加头文件stdlib.h
scanf(" %c",&c);} //此处的%前必须加空格,不加空格就没法运行??
前加fflush(stdin);这有就没有干扰了
相似回答