Найти углы и стороны треугольника по двум сторонам и углу между ними

Помогите с программой. Выводит неверные углы, хотя формулы перепроверял уже с десяток раз.

Ввод/Ожидаемый Результат

Стороны 5 и 12; угол 90/Стороны 5, 12, 13; Углы 90, 67 и 22;
Стороны 8 и 11; угол 32/Стороны 8, 11, 6; Углы 32, 45, 102;
#include <string>
#include <cmath>

using namespace std;

class Triangle
{
private:
    int
    a, // сторона a
    b, // сторона b
    c, // сторона c
    angle_a, // угол a
    angle_b, // угол b
    angle_c; // угол c
public: 
    void setTriangle(int side_a1, int side_a2, int angle_a1) // задаём стороны треугольника
    {
        a = side_a1; // инициализация a
        b = side_a2; // инициализация b
        angle_c = angle_a1; // инициализация угла C
        c = sqrt(pow(a,2) + pow(b,2) - 2*a*b*cos(angle_c) * M_PI / 180); // расчёт c
        angle_b = acos((pow(a,2)+pow(c,2)-pow(b,2))/(2*a*c)) *180/M_PI; // расчёт угла b
        angle_a = acos((pow(b,2)+pow(c,2)-pow(a,2))/(2*b*c)) *180/M_PI; // расчёт угла a
       /* if ((angle_c+angle_b>= 180)) //проверка треугольника
        {
            cout << "Такой треугольник не существует" << endl;
            a = NULL; // сброс
            b = NULL;
            c = NULL;
            angle_a = NULL;
            angle_b = NULL;
            angle_c = NULL;
        }*/
    }
    void getTriangleInfo() // отобразить все стороны и углы треугольника
    {
        cout << "Стороны: \n" "a=" << a << "\nb=" << b << "\nc=" << c << "\n" "угол a=" << angle_a << "\nугол b=" << angle_b << "\nугол c=" << angle_c << endl;
    }
}; // конец объявления класса Triangle

int main(int argc, char* argv[])
{
    setlocale(LC_ALL, "rus"); // установка локали
    int a, b, angle_c;
    cout << "задайте треугольник!\n";
    cout << "a: ";  cin >> a;
    cout << "b: ";  cin >> b;
    cout << "угол c: ";  cin >> angle_c;
    Triangle objCppstudio; // объявление объекта
    objCppstudio.setTriangle(a, b, angle_c); // задаём треугольник
    objCppstudio.getTriangleInfo(); // выводим треугольник
    return 0;
}```

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

Автор решения: MBo

Углы должны быть float/double, да и стороны, скорее всего, тоже.

А преобразование в радианы должно применяться к углу, а не к хз чему:

c = sqrt(a*a + b*b - 2*a*b*cos(angle_c * M_PI / 180));

P.S. И оставшиеся углы, как мне кажется, проще по теореме синусов посчитать, но это не ошибка.

→ Ссылка