#include <stdio.h>
#include <stdlib.h>
#include<string.h> int main()
{
char str[];
int n,begin=,end=;
while(scanf("%d",&n) && n)//以0结束的可以由这种格式写
{
getchar();//读取缓冲区的东西
gets(str);
if(!strcmp(str,"too low") && n>begin)//猜数的人傻,加后面那个条件说明他每一次都像第一次猜
{
begin=n;
}
if(!strcmp(str,"too high") && n<end)
{
end=n;
}
if(!strcmp(str,"right on"))
{
if(n<end && n>begin)
{
printf("Stan may be honest");
}
else
{
printf("Stan is dishonest");
}
begin=;end=;//初始化条件
continue;
}
}
return ;
}

总结:gets之前如果用了scanf,中间要用getchar

scanf不能用来读并且存储包含空格的串,用gets,但之前一定用getchar清除缓冲区的杂碎

10
too high
3
too low
4
too high
2
right on
5
too low
7
too high
6
right on
0
这种输入的模板代码,read above
05-11 19:36