Другие языки программирования и технологии

нужна программа в СИ, которая будет тестировать подобность двух треугольников. помогииите пожалуйста

помогииите пожалуйста
// Можно и без цикла!
#include <stdio.h>
#include <locale.h>
#include <math.h>
#define max(a, b) ((a) > (b) ? (a) : (b))
#define min(a, b) ((a) < (b) ? (a) : (b))
struct Triangle {
    double party1;
    double party2;
    double party3;
};
int exists(struct Triangle);
void similarity(struct Triangle, struct Triangle);
void main() {
    struct Triangle first, second;
    setlocale(LC_CTYPE, "Russian_Russia.1251");
    while (1) {
        printf("Введите стороны первого треугольника: ");
        scanf_s("%Lf%Lf%Lf", &first.party1, &first.party2, &first.party3);
        printf("Введите стороны второго треугольника: ");
        scanf_s("%Lf%Lf%Lf", &second.party1, &second.party2, &second.party3);
        if (exists(first) && exists(second)) similarity(first, second);
        else printf("\aХотя бы один из двух треугольников не существует! \n");
    }
}
int exists(struct Triangle t) {
    int ex = 1;
    double mx = max(max(t.party1, t.party2), t.party3);
    if (t.party1 + t.party2 + t.party3 - mx <= mx) ex = 0;
    return ex;
}
void similarity(struct Triangle f, struct Triangle s) {
    double eps = 1e-12;
    double mx1 = max(max(f.party1, f.party2), f.party3);
    double mx2 = max(max(s.party1, s.party2), s.party3);
    double mn1 = min(min(f.party1, f.party2), f.party3);
    double mn2 = min(min(s.party1, s.party2), s.party3);
    double md1 = f.party1 + f.party2 + f.party3 - mx1 - mn1;
    double md2 = s.party1 + s.party2 + s.party3 - mx2 - mn2;
    if (fabs(mx1 / mx2 - md1 / md2) < eps && fabs(md1 / md2 - mn1 / mn2) < eps) printf("Треугольники подобны. \n");
    else printf("Треугольники не подобны. \n");
}
Константин Милованов
Константин Милованов
57 200
Лучший ответ
А в чем у вас проблема? Что не получается?
Серик Кузаиров
Серик Кузаиров
34 701