首页 > 代码库 > POJ 2328 Guessing Game(一道让我想哭的水题!)
POJ 2328 Guessing Game(一道让我想哭的水题!)
【题意简述】:就是猜数,我想大家一定会在电视上看过这样类似的节目。
【分析】:WA到死,本来就应该是一道简单的水题,但是由于我本人也很水,在控制字符的输入上有了点小问题,所以做了很久!想的也有点杂,有点多!还是题做得少。
这个是我WA到死的代码!!
// WA 代码!! #include<iostream> #include<cstring> using namespace std; int main() { int a; char ans[10]; while(1) { bool flag = false; int Max = 100; int Min = 0; cin>>a; if(a == 0) break; getchar(); // 注意这里要加上这个! gets(ans); while(1) { if(strcmp(ans,"right on") == 0) break; if(strcmp(ans,"too high") == 0&&a<Max) // 这里的a<Max 要加上! Max = a; if(strcmp(ans,"too low") == 0&&a>Min) // 同样这里也是!! Min = a; cin>>a; getchar(); // 注意这里要加上这个! gets(ans); } if( a < Min || a > Max ) printf("Stan is dishonest\n"); else printf("Stan may be honest\n"); } return 0; }
这个是AC代码:
// AC 代码!! #include<iostream> #include<cstring> using namespace std; int main() { int a; char ans[10]; while(1) { bool flag = false; int Max = 100; int Min = 0; cin>>a; if(a == 0) break; getchar(); // 注意这里要加上这个! gets(ans); while(1) { if(strcmp(ans,"right on") == 0) break; if(strcmp(ans,"too high") == 0&&a<Max) Max = a; if(strcmp(ans,"too low") == 0&&a>Min) Min = a; cin>>a; getchar(); // 注意这里要加上这个! gets(ans); } if( a > Min && a < Max ) printf("Stan may be honest\n"); else printf("Stan is dishonest\n"); } return 0; }
看到两个代码的不同了吗?其实就只是我的第一个WA的代码少了个等号,应该是
if( a <= Min || a >= Max ) // 要有等号!!! printf("Stan is dishonest\n");
这种边界是最容易出错的地方!!以后要多加注意!
POJ 2328 Guessing Game(一道让我想哭的水题!)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。