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, т.е. не возвращающая никакого значения. А выводить ничего - это не совсем то же, что ничего не выводить :), вот компилятор и поясняет, что он не знает, как вывести "ничего"...

→ Ссылка