Простой калькулятор на C ++

Итак, я написал эту программу, но когда я вставляю любые два числа и число, представляющее операцию, оно всегда вычитает два числа, и я понятия не имею, что не так ...

-5
Solvex 21 Фев 2016 в 01:06

3 ответа

Лучший ответ
if (c = 1)

Знак = в C ++ означает назначение , а не сравнение . Вам понадобится == (и в других трех случаях тоже).

3
lisyarus 20 Фев 2016 в 22:09

Проблема в том, что у вас

if (c = 1) {
    ...
}

Выражение c = 1 присваивает 1 c, а затем возвращает 1, что является истинным, и, таким образом, выполняет вычитание.

Вы хотели сказать

if (c == 1) {
   ...
}
2
sfjac 20 Фев 2016 в 22:09

К сожалению, вы допустили грубую ошибку, сравнив C и C ++ с операторами присваивания.

if( c = 2 ) {

Сначала присваивает значение 2 переменной c, а затем проверяет наличие true или false (ненулевое или нулевое в C / C ++). В данном случае 2, т.е. правда.

Вы должны были использовать:

if( c==2 ) {

Потому что это сравнивает значение c с 2 и возвращает ненулевое значение, если они равны.

1
haavee 20 Фев 2016 в 22:11