题目大意:
根据too high、too low、right on猜数字,判断Stan是否诚实
解题思路:
根据输入模拟这个过程就可以了
代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int a,mark=0,flag1,flag2;
int max,min;
char ch[20];
while(1)
{
max=10;min=1;
flag1=flag2=0;
while(scanf("%d",&a)!=EOF)
{
if(a==0)
{
mark=1;
break;
}
getchar();
gets(ch);
if(!strcmp(ch,"too high"))
{
if(a<=max)
{
max=a;flag2=1;
}
}
if(!strcmp(ch,"too low"))
{
if(a>=min)
{
min=a;flag1=1;
}
}
if(!strcmp(ch,"right on"))
{
if(!flag1&&!flag2)
{
printf("Stan may be honest\n");
break;
}
else if(flag1&&!flag2)
{
if(a>min&&a<=max)
{
printf("Stan may be honest\n");
break;
}
else
{
printf("Stan is dishonest\n");
break;
}
}
else if(!flag1&&flag2)
{
if(a>=min&&a<max)
{
printf("Stan may be honest\n");
break;
}
else
{
printf("Stan is dishonest\n");
break;
}
}
else if(flag1&&flag2)
{
if(a>min&&a<max)
{
printf("Stan may be honest\n");
break;
}
else
{
printf("Stan is dishonest\n");
break;
}
}
}
}
if(mark)
break;
}
return 0;
}