2015-04-26 55 views
-1
while(play == 'y' || play == 'Y') 
{ 
      do 
      { 
        printf("Max number of guesses is %d\n", count); 
        printf("What is your guess? It must be between 1 and %d\n", $ 
        scanf("%d", &guess); 

        if(guess > randNum) 
        { 
          printf("Too large!\n"); 
          count = count -1; 
        } 
        else if(guess < randNum) 
        { 
          printf("Too small!\n"); 
          count = count -1; 
        } 
        else 
        { 
          printf("%s, you guessed my number!\n", name); 
          yourNum = guess; 
        } 
      } while(yourNum != guess || count == 0); 

      printf("Play again? (y/n)\n"); 
      scanf("%c", &play); 
+2

盲目猜測:'scanf函數( 「%C」,&play);'應該是'的scanf( 「%C」,&play);' – haccks

+1

標記爲題外話,因爲它要求調試幫助。 。 – Barracuda

+0

甜心的男人!非常感謝哈哈 – cyber02203

回答

0

我覺得你需要'儘管'爲第一while while循環,以便用戶將能夠播放一次。我的假設是戲劇變量不用'Y'或'Y'初始化,這就是爲什麼while循環沒有得到執行。更多的代碼是必需的。我的建議會像this`

  do{ 
do 
      { 
        printf("Max number of guesses is %d\n", count); 
        printf("What is your guess? It must be between 1 and %d\n", $ 
        scanf("%d", &guess); 

        if(guess > randNum) 
        { 
          printf("Too large!\n"); 
          count = count -1; 
        } 
        else if(guess < randNum) 
        { 
          printf("Too small!\n"); 
          count = count -1; 
        } 
        else 
        { 
          printf("%s, you guessed my number!\n", name); 
          yourNum = guess; 
        } 
      } while(yourNum != guess || count == 0); 

      printf("Play again? (y/n)\n"); 
      scanf("%c", &play); 
}while(play == 'y' || play == 'Y') 
+0

不,不,問題是'\ n''留在'scanf(「%c」,&play);',被讀取並作爲'play'接受下一次迭代,測試失敗'('\ n'=='y'|| '\ n'=='Y')'導致循環退出。將'scanf'格式的字符串改爲''%c「'會導致'scanf'跳過**所有的空白**(包括'newlines')來解決問題。它與測試條款所在的位置沒有任何關係。 (沒有downvote,但我會建議你在修復工作) –

相關問題