Найти разницу площадей треугольников - C (СИ)
Формулировка задачи:
Нужно найти разницу площадей треугольников ABC и A1BC. Рассматривать ситуацию, когда точка А1 принадлежит треугольнику ABC.
// ConsoleApplication2.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
int main()
{
float x1, x2, x3, y1, y2, y3, s;
printf(" Enter the coordinates of the points A, B, C:\n ");
scanf_s("%f %f %f %f %f %f", &x1, &y1, &x2, &y2, &x3, &y3);
float x4, y4, s1, s2, s3, ss, srez;
printf(" Enter the coordinates of the points A1:\n ");
scanf_s("%f", &x4, &y4);
s = (x1*(y2 - y3) + x2*(y3 - y1) + x3*(y1 - y2)) / 2;
if (s <= 0)
printf("Triangle ABC does not exist \n");
else
printf(" Enter the coordinates of the points A1:\n ");
scanf_s("%f %f", &x4, &y4);
s1 = (x4*(y2 - y3) + x2*(y3 - y4) + x3*(y4 - y2)) / 2;
s2 = (x1*(y2 - y4) + x2*(y4 - y1) + x4*(y1 - y2)) / 2;
s3 = (x1*(y4 - y3) + x2*(y3 - y1) + x3*(y1 - y4)) / 2;
ss = s1 + s2 + s3;
if (s1 = ss) {
srez = s - s1;
printf("S= ", srez);
}
else
printf(" Point A1 does not belong to the triangle ABC \n");
getchar();
return 0;
}Решение задачи: «Найти разницу площадей треугольников»
textual
Листинг программы
float x1, x2, x3, y1, y2, y3, s;
printf(" Enter the coordinates of the points A, B, C:\n ");
scanf_s("%f %f %f %f %f %f", &x1, &y1, &x2, &y2, &x3, &y3);
float x4, y4, s1, s2, s3, ss, srez;
s = (x1*(y2 - y3) + x2*(y3 - y1) + x3*(y1 - y2)) / 2;
if (s <= 0)
{
printf("Triangle ABC does not exist \n");
getchar();
return 0;
}
printf(" Enter the coordinates of the points A1:\n ");
scanf_s("%f %f", &x4, &y4);
s1 = (x4*(y2 - y3) + x2*(y3 - y4) + x3*(y4 - y2)) / 2;
// и т.д
Объяснение кода листинга программы
- Ввод координат вершин треугольника ABC с помощью функции scanf_s
- Вычисление площади треугольника ABC с помощью формулы Герона
- Проверка на существование треугольника ABC (если площадь равна или меньше нуля, то треугольник не существует)
- Ввод координат вершин треугольника A1 с помощью функции scanf_s
- Вычисление площади треугольника A1 с помощью формулы Герона
- И так далее (этот шаг повторяется для каждого треугольника)