/**
* @file lab4_3.c
* @author Нездоймишапка А.О., гр. 515б
* @date 13 березня 2024
* @brief Лабораторна робота № 4, варіант 15
*
* Функції. Швидке сортування. Робота з відлагоджувачем. Завдання 3
*/
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <locale.h>
/**
* @brief Функція для обчислення площі трикутника за довжинами трьох його сторін.
*
* @param a Довжина першої сторони трикутника.
* @param b Довжина другої сторони трикутника.
* @param c Довжина третьої сторони трикутника.
* @return double Площа трикутника.
*/
double triangle_square(double a, double b, double c) {
setlocale(LC_ALL, "ukr");
// Перевіряємо, чи сторони утворюють трикутник
if (a <= 0 || b <= 0 || c <= 0 || (a + b <= c) || (a + c <= b) || (b + c <= a)) {
printf("Невірні сторони трикутника.\n");
exit(1);
}
double s = (a + b + c) / 2.0;
return sqrt(s * (s - a) * (s - b) * (s - c));
}
int main() {
double a1, b1, c1, a2, b2, c2;
setlocale(LC_ALL, "ukr");
printf("Введіть довжину першої сторони першого трикутника: ");
if (scanf("%lf", &a1) != 1) {
printf("Помилка введення.\n");
return 1;
}
printf("Введіть довжину другої сторони першого трикутника: ");
if (scanf("%lf", &b1) != 1) {
printf("Помилка введення.\n");
return 1;
}
printf("Введіть довжину третьої сторони першого трикутника: ");
if (scanf("%lf", &c1) != 1) {
printf("Помилка введення.\n");
return 1;
}
printf("Введіть довжину першої сторони другого трикутника: ");
if (scanf("%lf", &a2) != 1) {
printf("Помилка введення.\n");
return 1;
}
printf("Введіть довжину другої сторони другого трикутника: ");
if (scanf("%lf", &b2) != 1) {
printf("Помилка введення.\n");
return 1;
}
printf("Введіть довжину третьої сторони другого трикутника: ");
if (scanf("%lf", &c2) != 1) {
printf("Помилка введення.\n");
return 1;
}
double area1 = triangle_square(a1, b1, c1);
double area2 = triangle_square(a2, b2, c2);
double total_area = area1 + area2;
printf("Сумарна площа двох трикутників: %.2f\n", total_area);
return 0;
}