//面试考题3 吕德勤
/*小王跟小李在玩一个猜数字游戏。首先小王选一个1到10的整数。然后,小李猜小王选了什
么数字,小王说小李猜的数字正确(“correct”)太大(“too high”)或者太小(“too low”),这
样重复直到“correct”为止。小李怀疑小王作弊,也就是说小王给的correct/too high/too low反
映有矛盾。
标准输入(stdin)有N场游戏的记录(N≥0),每两行表示小李的答案(1到10)跟小王的回复。
每场游戏最后都是“correct”。输入最后有一行“0”表示输入完毕。
提交的标准C或C++程序需要为每场游戏作出判断,游戏记录从标准输入读入。如果小王绝对
是作弊了(也就是说小王的反映有矛盾),输出一行“yes”到标准输出(stdout),否则输出一行
“maybe”。*/
#include <iostream>
#include <string>
using namespace std;
int number[10] = { 0 };
int n;
const char tooHigh[10] = "too high";
const char tooLow[10] = "too low";
const char correct[10] = "correct";
int strcmp(const char *str1, const char *str2);
void doTooHigh(int x);
void doTooLow(int x);
void doCorrect(int x);
int main(void) {
char reply[10];
cin >> n;
while (n != 0) {
cin.getline(reply, 10);
if (strcmp(reply, tooHigh) == 0)
doTooHigh(n);
else if (strcmp(reply, tooLow) == 0)
doTooLow(n);
else if (strcmp(reply, correct) == 0)
doCorrect(n);
cin >> n;
}
return 0;
}
void doTooHigh(int x) {
for (int i = n; i <= 10; i++)
number[i] = 1;
}
void doTooLow(int x) {
for (int i = n; i > 0; i--)
number[i] = 1;
}
void doCorrect(int x) {
if (number[n] == 0)
cout << "maybe";
else cout << "yes";
for (int i = 0; i <= 10; i++)
number[i] = 0;
}
Ly/pnaLor5XogIPpopgzIOWQleW+t+WLpAovKuWwj+eOi+i3n+Wwj+adjuWcqOeOqeS4gOS4queMnOaVsOWtl+a4uOaIj+OAgummluWFiOWwj+eOi+mAieS4gOS4qjHliLAxMOeahOaVtOaVsOOAgueEtuWQju+8jOWwj+adjueMnOWwj+eOi+mAieS6huS7gArkuYjmlbDlrZfvvIzlsI/njovor7TlsI/mnY7njJznmoTmlbDlrZfmraPnoa7vvIjigJxjb3JyZWN04oCd77yJ5aSq5aSn77yI4oCcdG9vIGhpZ2jigJ3vvInmiJbogIXlpKrlsI/vvIjigJx0b28gbG934oCd77yJ77yM6L+ZCuagt+mHjeWkjeebtOWIsOKAnGNvcnJlY3TigJ3kuLrmraLjgILlsI/mnY7mgIDnlpHlsI/njovkvZzlvIrvvIzkuZ/lsLHmmK/or7TlsI/njovnu5nnmoRjb3JyZWN0L3RvbyBoaWdoL3RvbyBsb3flj40K5pig5pyJ55+b55u+44CCCuagh+WHhui+k+WFpShzdGRpbinmnIlO5Zy65ri45oiP55qE6K6w5b2V77yITuKJpTDvvInvvIzmr4/kuKTooYzooajnpLrlsI/mnY7nmoTnrZTmoYjvvIgx5YiwMTDvvInot5/lsI/njovnmoTlm57lpI3jgIIK5q+P5Zy65ri45oiP5pyA5ZCO6YO95piv4oCcY29ycmVjdOKAneOAgui+k+WFpeacgOWQjuacieS4gOihjOKAnDDigJ3ooajnpLrovpPlhaXlrozmr5XjgIIK5o+Q5Lqk55qE5qCH5YeGQ+aIlkMrK+eoi+W6j+mcgOimgeS4uuavj+Wcuua4uOaIj+S9nOWHuuWIpOaWre+8jOa4uOaIj+iusOW9leS7juagh+WHhui+k+WFpeivu+WFpeOAguWmguaenOWwj+eOi+e7neWvuQrmmK/kvZzlvIrkuobvvIjkuZ/lsLHmmK/or7TlsI/njovnmoTlj43mmKDmnInnn5vnm77vvInvvIzovpPlh7rkuIDooYzigJx5ZXPigJ3liLDmoIflh4bovpPlh7ooc3Rkb3V0Ke+8jOWQpuWImei+k+WHuuS4gOihjArigJxtYXliZeKAneOAgiovCgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxzdHJpbmc+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG51bWJlclsxMF0gPSB7IDAgfTsKaW50IG47CmNvbnN0IGNoYXIgdG9vSGlnaFsxMF0gPSAidG9vIGhpZ2giOwpjb25zdCBjaGFyIHRvb0xvd1sxMF0gPSAidG9vIGxvdyI7CmNvbnN0IGNoYXIgY29ycmVjdFsxMF0gPSAiY29ycmVjdCI7CgppbnQgc3RyY21wKGNvbnN0IGNoYXIgKnN0cjEsIGNvbnN0IGNoYXIgKnN0cjIpOwp2b2lkIGRvVG9vSGlnaChpbnQgeCk7CnZvaWQgZG9Ub29Mb3coaW50IHgpOwp2b2lkIGRvQ29ycmVjdChpbnQgeCk7CgppbnQgbWFpbih2b2lkKSB7CgljaGFyIHJlcGx5WzEwXTsKCWNpbiA+PiBuOwoJd2hpbGUgKG4gIT0gMCkgewoJCWNpbi5nZXRsaW5lKHJlcGx5LCAxMCk7CgkJaWYgKHN0cmNtcChyZXBseSwgdG9vSGlnaCkgPT0gMCkKCQkJZG9Ub29IaWdoKG4pOwoJCWVsc2UgaWYgKHN0cmNtcChyZXBseSwgdG9vTG93KSA9PSAwKQoJCQlkb1Rvb0xvdyhuKTsKCQllbHNlIGlmIChzdHJjbXAocmVwbHksIGNvcnJlY3QpID09IDApCgkJCWRvQ29ycmVjdChuKTsKCQljaW4gPj4gbjsKCX0KCQoJcmV0dXJuIDA7Cn0KCnZvaWQgZG9Ub29IaWdoKGludCB4KSB7Cglmb3IgKGludCBpID0gbjsgaSA8PSAxMDsgaSsrKQoJCW51bWJlcltpXSA9IDE7Cn0KCnZvaWQgZG9Ub29Mb3coaW50IHgpIHsKCWZvciAoaW50IGkgPSBuOyBpID4gMDsgaS0tKQoJCW51bWJlcltpXSA9IDE7Cn0KCnZvaWQgZG9Db3JyZWN0KGludCB4KSB7CglpZiAobnVtYmVyW25dID09IDApCgkJY291dCA8PCAibWF5YmUiOwoJZWxzZSBjb3V0IDw8ICJ5ZXMiOwoJZm9yIChpbnQgaSA9IDA7IGkgPD0gMTA7IGkrKykKCQludW1iZXJbaV0gPSAwOwp9
prog.cpp: In function 'void doCorrect(int)':
prog.cpp:60:16: warning: iteration 10u invokes undefined behavior [-Waggressive-loop-optimizations]
number[i] = 0;
^
prog.cpp:59:2: note: containing loop
for (int i = 0; i <= 10; i++)
^
/home/uLkvnt/ccDh9iLx.o: In function `main':
prog.cpp:(.text.startup+0x75): undefined reference to `strcmp(char const*, char const*)'
prog.cpp:(.text.startup+0x132): undefined reference to `strcmp(char const*, char const*)'
prog.cpp:(.text.startup+0x18a): undefined reference to `strcmp(char const*, char const*)'
collect2: error: ld returned 1 exit status