Invalid operands to binary expression ('std::ostream' (aka 'basic_ostream' and 'void')
Пытаюсь написать функцию для решения квадратного уравнения, и получаю вот такую ошибку в 26 строке:
Invalid operands to binary expression ('std::ostream' (aka 'basic_ostream<char>' and 'void')
Но я не совсем понимаю, почему ругается компилятор и что он от меня хочет. Подключила библиотеку <ostream>, но это не сработало. Помогите, пожалуйста, разобраться! Спасибо.
Вот код:
#include <iostream>
#include <math.h>
#include <ostream>
using namespace std;
void Kva(float a,float b, float c)
{
float Diskr, x1, x2;
Diskr = (b*b) - (4*a*c);
if (Diskr >= 0)
{x1 = ((-b) - sqrt(Diskr))/(2*a);
x2 = ((-b) + sqrt(Diskr))/(2*a);
cout << "x1 =" << " " << x1 << ";" << " " << "x2 =" << " " << x2 << endl;}
else {cout << "Diskriminant < 0" << endl;}
//return x1;
}
int main()
{
float a, b, c;
cin >> a >> b >> c;
cout << Kva(a, b, c) << endl;
return 0;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Ваше Kva само выводит все, что нужно (надеюсь :))
Поэтому вам достаточно написать
cin >> a >> b >> c;
Kva(a, b, c);
Ошибка возникает из-за того, что функция объявлена как void, т.е. не возвращающая никакого значения. А выводить ничего - это не совсем то же, что ничего не выводить :), вот компилятор и поясняет, что он не знает, как вывести "ничего"...