Natalya Karanevich
Natalya Karanevich

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

помогииите пожалуйста

как сравнивать стороны? вот этот цикл я не понимаю

ГК
Галина Кандаева

// Можно и без цикла!
#include
#include
#include
#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");
}

Джамшед Носиров
Джамшед Носиров

А в чем у вас проблема? Что не получается?

Похожие вопросы
нужно написать программу на Си
Такой вопрос_)) нужно сделать программу на Си ...
Срочно! Нужно написать программу на си++.
Помогите пожалуйста написать программы на си++
Если такая программа, которая позволяет тестировать другие программы, как будто ты работаешь под разными ОС?
помогите... нужно программу написать в си++..
программа на си++
Программа на си++
Прога, язык си Нужно написать программу, которая будет вычислять нок двух чисел, Только не через формулу Эвклида
Почему не работает программа в Си по вычислению площади треугольника