2014-03-05 107 views
0

我在Turbo C中做了一个简单的程序,它像一个猜谜游戏。它应该在用户输入3个错误字符后或者在正确的字符被猜出后立即结束游戏。然而,它不工作,我不明白为什么。输入4个字符(错误或不正确)后,游戏关闭。turbo c猜谜游戏do/while循环

#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

更改您的循环条件为

while (tries <= 3 && win_flag == 0); 
+0

谢谢,就是这样。 – user3359196

0
  1. 你忘了处理enter键人每个字符后按。所以你的下一个getch是让他们。

  2. 您的while条款已被删除。只要人仍然尝试离开,并且赢标志仍然为零,您就想保持循环。所以:(tries <= 3) && (win_flag == 0)