2017-07-09 13 views
-5
int a, b; 
cin >> a >> b; 
enum operation {add, sub, mul, div}; 
     operation d; 
     switch (d) 
     { 
     case add : cout << "addition of two numbers is: " << a + b << endl; 
      break; 
     case sub : cout << "subtraction of two numbers is " << a - b << endl; 
      break; 
     case mul : cout << "multiplication of the two numbers is " << a * b << endl; 
      break; 
     case div : cout << "division of the two numbers is " << a/b << endl; 
     default: cout << "invalid parameters" << endl; 
     } 

switch文C私はこれをビルドするとき、私は「初期化されていないローカル変数dを使用」というエラーが表示されますが、私は定義されたリストから1に変数を初期化するとき、私は以外の他のスイッチのケースを選択することはできません定義されたもの 私は何かが欠けていることを知っている、私はたくさんのグーグルで探せなかったが、助けを得られなかった。誰かが助けてくれたら本当に感謝しています。ありがとうございました!列挙型と++

+2

を試すことができます。これを熟考してください。 –

+2

@kapardhi dの値はどこから来るのですか? 。デフォルト値でdを初期化し、操作値を読み込むことができます(標準入力からadd/sub /..._を列挙型に変換します) –

+2

スイッチはユーザーの操作を生成しません。 –

答えて

0

あなたがしようとしていることは、コードを動的にすることだと思います。残念ながら、あなたはそれを完全に間違っています。まず、enumのコンセプトをクリアしてください。

このような場合は、その後、あなたはスイッチを入力すると、変数dは、いくつかの値が割り当てられている必要がありますthis-

int a, b; 
char op; 

cin >> a >> op >> b; 

switch(op) 
{ 
    case '+': cout << "addition of two numbers is: " << a + b << endl; break; 
    case '-': cout << "subtraction of two numbers is " << a - b << endl; break; 
    case '*': cout << "multiplication of the two numbers is " << a * b << endl; break; 
    case '/': cout << "division of the two numbers is " << a/b << endl; break; 
    default: cout << "invalid operator" << endl; 
}