我在Turbo C中制作了一个简单的程序,就像一个猜谜游戏。它应该在用户输入3个错误字符后,或者在猜到正确的字符后立即结束游戏。然而,它不起作用,我无法弄清楚为什么。我输入4个字符(错误与否)后游戏才关闭。
#include <stdio.h>
#include <conio.h>
void main(void)
{
char ch;
int tries = 0;
int win_flag = 0;
clrscr();
printf("Guess the letter: ");
do
{
ch = getch();
printf("%c", ch);
tries++;
if (ch == 'a')
win_flag = 1;
else
win_flag = 0;
}
while (tries <= 3 || win_flag == 1);
if (tries <= 3)
printf("\nGame over.");
else if (win_flag == 1)
printf("\nYou win!");
getch();
}
答案 0 :(得分:0)
将循环条件更改为
while (tries <= 3 && win_flag == 0);
答案 1 :(得分:0)
您忘记处理每个角色后人们按下的enter
键。所以你的下一个getch
正在获得它们。
您的while
子句被破坏了。只要该人仍然尝试离开并且获胜标志仍然为零,您希望保持循环。所以:(tries <= 3) && (win_flag == 0)