2015-05-23 2 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 вы назначаете преобразуются в ненулевой.

Во-вторых, ваш pasirinkimas является float, и вы пытаетесь сравнить с char (на самом деле читать сам потерпит неудачу, если вы попытаетесь inputing в char в линии cin >> pasirinkimas;, так pasirinkimas останется неинициализированным). Используйте также char для типа первого.

Я настоятельно рекомендую вам включить все предупреждения компилятора. Например, в g ++/clang ++ вы включаете их с помощью -Wall -Wextra -pedantic -Weffc++. Они помогут вам в диагностике таких проблем, которые в противном случае могут остаться незамеченными в первую очередь.

Смежные вопросы