poj2328
来源:互联网 发布:linux 快速启动matlab 编辑:程序博客网 时间:2024/04/29 11:18
题目大意:
根据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;}
0 0