Упражнения на C ++: печатает центральную координату и радиус описанной окружности треугольника
C ++ Basic: упражнение 67 с решением
Напишите программу на C ++, в которой печатается центральная координата и радиус описанной окружности треугольника, который создается тремя точками на плоской поверхности.
Пример решения :
Код C ++:
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main() {
double a, b, c, x1, y1, x2, y2, x3, y3, xp, yp, d, radius;
while (cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3) {
a = sqrt((x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1));
b = sqrt((x3 - x1)*(x3 - x1) + (y3 - y1)*(y3 - y1));
c = sqrt((x3 - x2)*(x3 - x2) + (y3 - y2)*(y3 - y2));
radius = (a*b*c) / (sqrt((a+b+c)*(b+c-a)*(c+a-b)*(a+b-c)));
d = 2*(x1*(y2-y3) + x2*(y3-y1) + x3*(y1-y2));
xp = ((x1*x1 + y1*y1)*(y2-y3) + (x2*x2 + y2*y2)*(y3-y1) + (x3*x3 + y3*y3)*(y1-y2))/d;
yp = ((x1*x1 + y1*y1)*(x3-x2) + (x2*x2 + y2*y2)*(x1-x3) + (x3*x3 + y3*y3)*(x2-x1))/d;
cout << fixed << setprecision(3) << "Central coordinate of the circumscribed circle: (" << xp << ", " << yp << ")\nRadius: " << radius << endl;
}
return 0;
}
Пример вывода:
Пример ввода: 6 9 7 Пример вывода: 7 9 6
Блок - схема:
Редактор кода C ++:
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите программу на C ++ для обращения заданной строки. Размер строки должен быть меньше или равен 25.
Далее: Напишите программу на C ++, чтобы прочитать семь чисел и отсортировать их в порядке убывания.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code