Неправильно считает значение

Считаю параметры треугольника. При выводе длины всех медиан, значение у всех 0. Почему?

#include <iostream
#include <cmath

void height(float AB, float BC, float AC)
{
    float h1_AB, h2_BC, h3_AC, P2;
    float P = (AB + BC + AC);
    P2 = P / 2;
    h1_AB = ((2 * sqrt(P2 * (P2 - AB) * (P2 - BC) * (P2 - AC))) / AB);
    h2_BC = ((2 * sqrt(P2 * (P2 - BC) * (P2 - AB) * (P2 - AC))) / BC);
    h3_AC = ((2 * sqrt(P2 * (P2 - AC) * (P2 - AB) * (P2 - BC))) / AC);
    std::cout << "h1_AB= " << h1_AB << std::endl;
    std::cout << "h2_BC= " << h2_BC << std::endl;
    std::cout << "h3_AC= " << h3_AC << std::endl;
    std::cout << "Периметр= " << P << std::endl;

}

void median(float AB, float BC, float AC)
{
    double med1_AB, med2_BC, med3_AC;
    med1_AB = (1 / 2) * sqrt(2 * pow(AC, 2) + 2 * pow(BC, 2) - pow(AB, 2));
    med2_BC = (1 / 2) * sqrt(2 * pow(AB, 2) + 2 * pow(AC, 2) - pow(BC, 2));
    med3_AC = (1 / 2) * sqrt(2 * pow(AB, 2) + 2 * pow(BC, 2) - pow(AC, 2));
    std::cout << "med1_AB= " << med1_AB << std::endl;
    std::cout << "med2_BC= " << med2_BC << std::endl;
    std::cout << "med3_AC= " << med3_AC << std::endl;
}

int main()
{
    setlocale(LC_ALL, "Russian");

    int x1, y1, x2, y2, x3, y3;
        
    std::cout << "Эта программа вычисляет параметры треугольника (координаты точек - целые числа) " << std::endl;
    std::cout << "Введите координату x1 точки A: ";
    std::cin >> x1;
    std::cout << "\nВведите координату y1 точки A: ";
    std::cin >> y1;
    std::cout << "\nВведите координату x2 точки B: ";
    std::cin >> x2;
    std::cout << "\nВведите координату y2 точки B: ";
    std::cin >> y2;
    std::cout << "\nВведите координату x3 точки C: ";
    std::cin >> x3;
    std::cout << "\nВведите координату y3 точки C: ";
    std::cin >> y3;

    float AB, BC, AC;

    AB = sqrt(pow((x2 - x1), 2) + pow((y2 - y1), 2));
    BC = sqrt(pow((x3 - x2), 2) + pow((y3 - y2), 2));
    AC = sqrt(pow((x1 - x3), 2) + pow((y1 - y3), 2));

    if ((AB + BC > AC) && (BC + AC > AB) && (AC + AB > BC))
    {
        std::cout << "AB= " << AB << std::endl;
        std::cout << "BC= " << BC << std::endl;
        std::cout << "AC= " << AC << std::endl;
    }

    else
    {
        std::cout << "данного треугольника не существует" << std::endl;
    }
    height(AB, BC, AC);
    median(AB, BC, AC);


    return 0;
}

Ответы (2 шт):

Автор решения: Эникейщик

Потому что 1/2 в С++ равно 0 (это основы языка, 1 и 2 int, значит и результат int), а произведение любого числа на 0 равно 0.

→ Ссылка
Автор решения: Harry

Потому что вот это

(1 / 2)

равно 0. Потому что деление целочисленное, с отбрасыванием дробной части. Не мелочитесь, пишите 0.5 или хотя бы /2....

→ Ссылка