2015-05-23 99 views
-8

當我啓動此代碼時,我得到一個不好的結果。我想製作一個簡單的計算器,因爲我是C++中的新手。如何調試我的C++代碼?

#include <iostream> 
using namespace std; 

int main() { 
    setlocale(LC_ALL, "Lithuanian"); 
    float pasirinkimas, a, b, atsakymas; 
    cout << "Pasirinkite veiksmą : "; 
    cin >> pasirinkimas; 
    if(pasirinkimas = '+') { 
     cout << "Ąveskite pirmą skaičių : "; 
     cin >> a; 
     cout << "Ąveskite antrą skaičių : "; 
     cin >> b; 
     atsakymas = a + b; 
     cout << "Atsakymas yra : " << atsakymas << endl; 
     cout << "Ačiū, kad naudojates Neimanto Jociaus kurtu skaičiuotuvu" << endl; 
} 
    else if(pasirinkimas = '-') { 
     cout << "Ąveskite pirmą skaičių : "; 
     cin >> a; 
     cout << "Ąveskite antrą skaičių : "; 
     cin >> b; 
     atsakymas = a - b; 
     cout << "Atsakymas yra : " << atsakymas << endl; 
     cout << "Ačiū, kad naudojates Neimanto Jociaus kurtu skaičiuotuvu" << endl; 
} 
    else if(pasirinkimas = '*') { 
     cout << "Ąveskite pirmą skaičių : "; 
     cin >> a; 
     cout << "Ąveskite antrą skaičių : "; 
     cin >> b; 
     atsakymas = a * b; 
     cout << "Atsakymas yra : " << atsakymas << endl; 
     cout << "Ačiū, kad naudojates Neimanto Jociaus kurtu skaičiuotuvu" << endl; 
} 
    else if(pasirinkimas = '/') { 
     cout << "Ąveskite pirmą skaičių : "; 
     cin >> a; 
     cout << "Ąveskite antrą skaičių : "; 
     cin >> b; 
     atsakymas = a/b; 
     cout << "Atsakymas yra : " << atsakymas << endl; 
     cout << "Ačiū, kad naudojates Neimanto Jociaus kurtu skaičiuotuvu" << endl; 
} 
    else { 
     cout << "Ąvestas veiksmas neegzistuoja!" << endl; 
     exit(0); 
} 
    system("PAUSE"); 
} 
+0

什麼是「壞結果」?你期望輸出什麼?這是我得到的:https://ideone.com/7eluVA –

+0

什麼不好的結果?你期望發生什麼?並且請將標題更改爲與您的問題/問題相關的內容。 – Jite

+0

你預計會發生什麼?發生了什麼呢?您到目前爲止嘗試自行解決問題的方法是什麼? –

回答

0

pasirinkimas的類型更改爲字符,它應該工作。

4

在C++中,運算符=表示賦值。爲了測試平等,使用==,例如,

if(pasirinkimas == '+') 

否則你的第一個if將評估爲true,由於事實char分配轉換爲非零。

其次,你的pasirinkimasfloat,並嘗試用char比較(實際上是讀,如果你嘗試在行cin >> pasirinkimas;輸入查詢一個char本身會失敗,所以pasirinkimas將保持未初始化)。前者的類型也使用char

我強烈建議你打開所有的編譯器警告。例如,在g ++/clang ++中,用-Wall -Wextra -pedantic -Weffc++打開它們。他們會幫助你診斷這些問題,否則這些問題一開始可能會被忽視。