170 похожих чатов

Ребята, почему double calc() возвращает nan? class calculator{ public: calculator() {

cout << "Start programm " << endl; };

private:
int x;
int y;
char oper;

public:
char oper_;
int x_, y_;
char getOper() {
oper == oper_;
return oper_;
}
int getXY()
{
x = x_;
y = y_;
return x_;
return y_;
}

double calc(int x_, int y_, char oper_) {
switch (oper)
{
case '-':
return x - y;
break;
case '+':
return x + y;
break;
case '*':
return x * y;
break;
case '/':
return x / y;
break;
case '%':
return x % y;
break;
}
}
~calculator() { cout << "Stop programm " << endl; }
};

int main() {
int x, y;
char oper;
cin >> x >> y >> oper;

calculator calc;

cout << calc.calc(x, y, oper) << endl;;
return 0;

}

3 ответов

12 просмотров

в функции calc() ты указываешь параметры x_, y_, oper_, а в кейсах(case) используешь x, y, oper; поэтому свитч не отрабатывает. А так как нет возвращающего оператора у функции (not control paths return a value), то ты получаешь непонятное значение. Еще у тебя в getOper() сравнение oper == oper_, вместо = присваивания и в getXY два return-а - все, что ниже первого уже не отработает.

Kostiantyn- Автор вопроса
the Same⬇ Same
в функции calc() ты указываешь параметры x_, y_, o...

Подправил код вот так, а все равно не отрабатывает #include <iostream> using namespace std; class calculator{ public: calculator() { cout << "Start programm " << endl; }; private: double x; double y; char oper; public: char getOper() { this-> oper == oper; return oper; } double getX() { return x; } double getY() { return y; } double calc(double x, double y, char oper) { switch (oper) { case '-': return x - y; break; case '+': return x + y; break; case '*': return x * y; break; case '/': return x / y; break; } } ~calculator() { cout << "Stop programm " << endl; } }; int main() { double x, y; char oper; cin >> x >> y >> oper; calculator calc; cout << calc.calc(x, y, oper) << endl;; return 0; }

Похожие вопросы

Обсуждают сегодня

$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
И ещё вопрос: можно ли типа как на дос как-то запариться и с помощью прерываний выводить текст, вместо функции printf ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
34
Ладно, ещё тупого спрошу. Код должен банально вывести значение регистра на консоль, на деле же не выводя ничего, просто оставляя нерабочую консоль (открыта, ничего не написан...
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
25
здравствуйте. пытаюсь проверить, содержится ли в десятичном представлении инта некоторая цифра. совершаю: strstr(x, "5") != NULL) получаю ошибку с фото (заведомо неработающий ...
Катя Шевчук🪇
18
Что там вообще с кроссплатформенностью?
🄼🄰🄺🅉🄰🄸
23
Ребята. Этот вопрос мучает меня уже 13 - 15 лет. Почему при валидации в ФормЛистере у поля phone поведение странноватое и отличается от других? А именно, вот набор правил д...
Андрей [aharito] Харитонов
1
Доброй ночи. Вопрос знатокам. Имеется некая таблица, результат которой выведен в DBGrid на форме. И есть форма, с помощью которой можно как добавить запись, так и отредактиров...
Евгений
28
{ char buff = *start; *start = *end; *end = buff; } Из-за этой строчки? Что каждый символ через перем бафф? Как вариант использовать другие со...
Wenks
12
а всё почему? потому что ассемблер в отличии от яву порождает множество пагубных привычек, среди которых например можно отметить использование глобальных переменных для всего ...
Mixail Frolov
35
Кстати, а я вот тут подумал. Допустим, у нас имеется цикл который выполняет огромное количество итераций, но мы хотим, чтобы какие-то действия исполнилось только один раз. В Я...
The Bird of Hermes
23
Карта сайта