2017-08-12 16 views
-4

ここで何が問題になりますか?私はエラーここUse of undeclared identifier 'answer'whileループCのコーディングエラーが発生する

を取得していますと、私のコードです:あなたは、変数answer内部ループブロックを宣言した

 if (CalculatorChoice == 1) do { 
      int a; 
      int b; 
      int sum; 
      char answer; 

      printf ("You have choosen addition, please enter first number: "); 
      scanf("%d", &a); 
      printf ("Now please enter second number to addit: "); 
      scanf("%d", &b); 
      printf("The sum is: %d \n\n", sum = a+b); 

      printf("Do you want to go back to menupage? (y/n): "); 
      answer = getchar(); 
      getchar(); 
     } while(answer=='y'); 
+2

'char answer;'はdo-whileの前に定義する必要があります。と '答え= getchar(); getchar(); ' - >' getchar();答えはgetchar(); ' – BLUEPIXY

+0

問題は" while(answer == 'y'); " :-( – SchnitteKing

+0

また、 'answer == 'y'' - >' answer!=' y''または 'answer == 'n''ですか? – BLUEPIXY

答えて

0
if (CalculatorChoice == 1) 
    do { 
    /* ... */ 
    char answer; 

    /* ... */ 
    } while(answer=='y'); 

、それは外あるwhile条件からアクセスされますループブロック。

あなたは、この修正するために、ループ本体の外に宣言を移動することができます。

if (CalculatorChoice == 1) { 
    char answer; 
    do { 
    /* ... */ 
    } while(answer=='y'); 
} 
+0

これはどちらも問題を解決しませんでした。 '); " – SchnitteKing

+2

私の答えのように、' if'ボディのまわりに角かっこを入れましたか? – Frxstrem

+0

@FrederikHansen BLUEPIXYはあなたのキャラクターの消費が間違っているという点で正しいです。あなたの質問の下の最初のコメントを見てください。あなたは改行を捨て、次の文字を保持する必要があります、保持しないでください。 (そして正直言って、改行を使って消費するより堅牢な方法が順番になる可能性が高い)。*次に、ここに示すように、ループの外側で 'answer 'を動かす。 – WhozCraig

0

をお使いのバージョンでは、ブロック内で宣言された変数は、ブロック

の外にはアクセスできませんしているこのコードは、位置

if (CalculatorChoice == 1) 
{ 
    char answer; 

    do { 
    int a; 
    int b; 
    int sum; 

    printf ("You have choosen addition, please enter first number: "); 
    scanf("%d", &a); 
    printf ("Now please enter second number to addit: "); 
    scanf("%d", &b); 
    printf("The sum is: %d \n\n", sum = a+b); 

    printf("Do you want to go back to menupage? (y/n): "); 
    answer = getchar(); 
    getchar(); 
    } while(answer=='y'); 
    } 
を変更
+0

投稿しないでくださいコードを解説しますが、その解決方法と、それが既に質問に含まれているコードとどのように違うのかを説明してください。 – Frxstrem

+0

単語が少なくなっています。 「ダウン」を取り消す –

+0

ありがとう!私の問題を解決しました。 – SchnitteKing

関連する問題