poj2328---"right on"进入下一个case的模板(while)

#include <stdio.h>
#include <stdlib.h>
#include<string.h>

int main()
{
    char str[10];
    int n,begin=0,end=11;
    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=0;end=11;//初始化条件
            continue;
        }
    }
    return 0;
}

总结: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

 

posted @ 2015-06-13 12:04  Gabyler  阅读(171)  评论(0编辑  收藏  举报