2017-07-10 83 views
-4

所以我一直在試圖找出如何使用我的if語句正確的條件(我知道有一些代碼本身的醜陋,但我擔心與atm條件)。當「theguess」(用戶輸入的字符)等於第一個if語句中的「H」或「h」時,如果它在第二個中等於「T」或「t」,我希望它進入if語句聲明,如果它不等於第三個「H」,「h」,「T」或「t」。我以前有||而不是& &但這也沒有奏效。請給我打電話我不知道我的條件需要是關於字符

將字符輸入或存儲到變量中沒有問題,只有我的邏輯是有缺陷的。

編輯:我決定嘗試& &的原因是因爲它修復了其他人詢問的類似問題。對不起,鄧氏編碼邏輯不符合我想要的。這裏

if (theguess == ('H') && ('h')) 
     { 
      P1score -= 5; 
      puts("-5 Points!"); 
     } 
     if (theguess == ('T') && ('t')) 
     { 
      P1score += 10; 
      puts("+10 Points!"); 
     } 
     if (theguess != ('H') && ('h') && ('T') && ('t')) 
     { 
      return 0; 
     } 
+4

1.你的語法是錯誤的。任何基本的教程都會覆蓋正確的語法,只是猜測不會有幫助... 2.您的描述顯示「等於'H'或'h',但您的代碼使用AND – John3136

+0

使用此語法:'if(theguess == 'H'|| theguess =='h')'等 – SHG

+0

使用'else if'試驗? – CinCout

回答

0

錯誤是,

if (theguess == ('H') && ('h')) 

應該

if (theguess == ('H') || theguess == ('h')) 

爲什麼不您使用switch..case?

+0

「錯誤在這裏」 - 有什麼錯誤?這是完全有效的C.請更明確。 – babon

+0

顯然沒有語法錯誤,但作爲OP需要檢查是否值是'H'或'h',OPs聲明將會被視爲「if(theguess ==('H')&& TRUE)」 – Harsh

+0

我已經在switch語句中使用了這段代碼,並試圖不讓自己混淆一下。感謝您的幫助。 ||之後我沒有意識到你必須再次放置變量==。 :) – ninjamckinnley

0

您試圖檢查輸入的字符是'h'還是'H',那麼您爲什麼要使用'AND'運算符?

您尚未正確提供條件。嘗試以下它將工作。

#include<stdio.h> 
int main() 
{ 
    char thought; 
    float P1score=0.0; 
    printf("Enter your thought\n"); 
    scanf("%c",&thought); 
    if(thought=='h' || thought=='H') 
    { 
      P1score -= 5; 
     puts("-5 Points!"); 
    } 
    else if (thought=='T'||thought== 't') 
    { 
     P1score += 10; 
     puts("+10 Points!"); 
    } 
    else 
    { 
      return 0; 
    } 
} 
+0

您應該總是檢查'scanf'的返回值。如果用戶通過按下'ctrl + d'(或windoze上的'ctrl + z')來取消輸入,那麼您從那時起就會有一個未定義的行爲(如果您使用'P1score'來初始化'thought',那麼您將受益)。只需要一個簡單的'if(scanf(「%c」,&thought)!= 1){..handle error ..}'。 –

+0

謝謝.. @ DavidC.Rankin指點.. – Saawaj

-2

試試這個。你已經使用/||因爲如果你給大寫字母或小寫字母,它會滿足。如果它有效,請給我一樣。

如果(theguess ==( 'H')|| theguess ==( 'H'))

{ 

     P1score -= 5; 

     puts("-5 Points!"); 

    } 

    else if (theguess == ('T') || theguess == ('t')) 

    { 

     P1score += 10; 

     puts("+10 Points!"); 

    } 

    else 

    { 

     return 0; 

    } 

+1

刪除答案之前它downvote垃圾郵件。 –

相關問題