Программирование алгоритмов линейной структуры. написать код на с++ Даны три стороны треугольника a,b,c. Определить углы треугольника. a=13,5 b=20,8 c=29,6
Считаем такие дроби, берем арккосинус, получаем угол в радианах. Можно умножить на 180/π, тогда получится угол в градусах.
По-хорошему, можно определить функцию, которая будет вычислять угол, тогда код будет опрятнее, понятнее, и в неём будет сложнее допустить ошибку. Но я этого делать не буду :)
Код (C++):
#define _USE_MATH_DEFINES
#include <iostream>
#include <cmath>
int main() {
double a, b, c;
std::cin >> a >> b >> c;
std::cout << acos((a * a + b * b - c * c)/(2 * a * b)) * 180/M_PI << " ";
std::cout << acos((c * c + b * b - a * a)/(2 * c * b)) * 180/M_PI << " ";
std::cout << acos((a * a + c * c - b * b)/(2 * a * c)) * 180/M_PI << " ";
117.725°, 23.8109°, 38.4643°
Объяснение:
Можно использовать теорему косинусов:
Считаем такие дроби, берем арккосинус, получаем угол в радианах. Можно умножить на 180/π, тогда получится угол в градусах.
По-хорошему, можно определить функцию, которая будет вычислять угол, тогда код будет опрятнее, понятнее, и в неём будет сложнее допустить ошибку. Но я этого делать не буду :)
Код (C++):
#define _USE_MATH_DEFINES
#include <iostream>
#include <cmath>
int main() {
double a, b, c;
std::cin >> a >> b >> c;
std::cout << acos((a * a + b * b - c * c)/(2 * a * b)) * 180/M_PI << " ";
std::cout << acos((c * c + b * b - a * a)/(2 * c * b)) * 180/M_PI << " ";
std::cout << acos((a * a + c * c - b * b)/(2 * a * c)) * 180/M_PI << " ";
}