2017-02-19 4 views
-4

私はC++を初めて使っています!私がどのように私が198400537を追加するか、また私は+ - *を受け入れるか、またはそれらを使用するプログラムを得ることができますか?ありがとう! 〜mccallbush;) P.Sもう情報が必要な場合はお知らせください!ラインでまずこの番号はどこから来たのですか?これをどのように機能させることができますか?

、:あなたのコードの間違いの

#include <iostream> 
#include <string> 

using namespace std; 

int main() 
{ 
    char repeat = 'y'; 
    string x; 
    int num1; 
    int num2; 
    int result; 

    cout << "Please select one of the following: + - * /" << "\n"; 
    cin >> x; 

    while(repeat == 'y') 
    { 
     if(x == "+") 
     { 
      result = num1 + num2; 
      cout << "Please enter your first number: " << "\n"; 
      cin >> num1; 
      cout << "Please enter your second number: " << "\n"; 
      cin >> num2; 
      cout << "Answer is: " << result << "\n"; 
     } 
     else if(x == "-") 
     { 
      result = num1 - num2; 
      cout << "Please enter your first number: " << "\n"; 
      cin >> num1; 
      cout << "Please enter your second number: " << "\n"; 
      cin >> num2; 
      cout << "Answer is: " << result << "\n"; 
     } 
     else if(x == "*") 
     { 
      result = num1 * num2; 
      cout << "Please enter your first number: " << "\n"; 
      cin >> num1; 
      cout << "Please enter your second number: " << "\n"; 
      cin >> num2; 
      cout << "Answer is: " << result << "\n"; 
     } 
     else if(x == "/") 
     { 
      result = num1/num2; 
      cout << "Please enter your first number: " << "\n"; 
      cin >> num1; 
      cout << "Please enter your second number: " << "\n"; 
      cin >> num2; 
      cout << "Answer is: " << result << "\n"; 
     } 
     else 
     { 
      cout << "You did not enter a correct symbol please try again. \n"; 
     } 
     cout << "Do you want to repeat?(y/n): "; 
     cin >> repeat; 
    } 
} 
+4

これは、「乱数ジェネレータ」と呼ばれるかなり洗練されたプロセスの結果です。これは、変数の初期化に失敗するたびに使用します。 –

+0

ユーザーに入力する前に2つの数字*を追加しています。つまり、ランダムなガベージを含む2つの初期化されていない変数を追加しています。 –

+0

変数を入力した後、次の文を入れます: 'result = num1 + num2;' –

答えて

1

カップル

result = num1 + num2; 
cout << "Please enter your first number: " << "\n"; 
cin >> num1; 
cout << "Please enter your second number: " << "\n"; 
cin >> num2; 
cout << "Answer is: " << result << "\n"; 

あなたがさえ値を受け入れる前に、計算を行っています。あなたは計算をした後に、ユーザーからの入力として数字を尋ねます。この問題は4つのif文にあります。これを修正するには、コードを次のように変更してください:

cout << "Please enter your first number: " << "\n"; 
cin >> num1; 
cout << "Please enter your second number: " << "\n"; 
cin >> num2; 
result = num1 + num2; // After numbers are inputted, but before the sum is output 
cout << "Answer is: " << result << "\n"; 

残りのif文を修正するには、あなたに任せます。


第二

あなたはwhileループに入る前に、あなたが唯一の選択肢に一度ユーザーに尋ねます。その後、x変数の値は決してループの中で変更されないので、ループに入る前にループをだけ実行すると無限に移動します。したがって、コードを次のように変更することができます。

while(repeat == 'y') 
{ 
    cin.clear(); // I'll explain this. 
    cout << "Please select one of the following: + - * /" << "\n"; 
    cin >> x; 

    // Do the rest of the while loop. 
} 

この方法では、whileループ中にオプションを変更できます。入力をクリアする必要があるため、cin.clear()が必要でした。それ以外の場合は、無限の出力につながります。ステートメントを削除してみてください。 (詳細はCan you explain cin.ignore() and cin.clear() for C++? When is it appropriate to use these? How do they effect the next cin>>?を参照)。

これは問題を分類する必要があります(試してみました)。私が言及した何かが不明な場合、または何か助けが必要な場合は、コメント欄に私に知らせてください。

関連する問題