【题意简述】:就是猜数,我想大家一定会在电视上看过这样类似的节目。
【分析】: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;
}
if( a <= Min || a >= Max ) // 要有等号!!!
printf("Stan is dishonest\n");
这种边界是最容易出错的地方!!以后要多加注意!
POJ 2328 Guessing Game(一道让我想哭的水题!)
原文:http://blog.csdn.net/u013749862/article/details/39185533