Делаю простой калькулятор на c++ с помощью if и выдает ошибку
Вот мой код
#include <iostream>
using namespace std;
int main()
{
char doing;
double a,b,summ;
cout << "Vvedite а: ";
cin >> a;
cout << "Vvedite b: ";
cin >> b;
cout << "Vvedite deistvie * ili + ili - ili : ";
cin >> doing;
if (doing == *) {
summ == a * b;
} if (doing == :: ){
summ == a : b;
} if (doing == + ){
summ == a + b;
} if (doing == -){
summ == a - b;
}
cout << "summa = " << summ << endl;
return 0;
}
А вот ошибки
14 19 C:\Users\Админ\Desktop\main.cpp [Error] expected primary-expression before ')' token 16 24 C:\Users\Админ\Desktop\main.cpp [Error] expected id-expression before ')' token 17 18 C:\Users\Админ\Desktop\main.cpp [Error] found ':' in nested-name-specifier, expected '::' 17 16 C:\Users\Админ\Desktop\main.cpp [Error] 'a' is not a class or namespace 18 23 C:\Users\Админ\Desktop\main.cpp [Error] expected primary-expression before ')' token 20 23 C:\Users\Админ\Desktop\main.cpp [Error] expected primary-expression before ')' token
Ответы (2 шт):
if (doing == '*') {
summ = a * b;
} if (doing == ':' ){
summ = a / b;
} if (doing == '+' ){
summ = a + b;
} if (doing == '-'){
summ = a - b;
}
Вы забили везде установить ' '
if (doing == '*') {
summ = a * b;
} else if (doing == ':' ){
summ = a / b;
} else if (doing == '+' ){
summ = a + b;
} else if (doing == '-'){
summ = a - b;
}
Что вы сравниваете? Операторы? Кавычки нужно, т.к это символ. Для производительности кода пишите else.
Деление вот так: /.
summ == a - b;
Это не присвоение! Это сравнение! Замените на один равно везде, кроме где if
А еще оптимальней было бы через
switch(doing)
{
case '*' :
summ = a*b;
case ':' :
summ = a/b;
case '+' :
summ = a+b;
case '-' :
summ = a-b;
default:
cout << "wrong!" << endl;
}