Поиск площади многоугольника - C (СИ)
Формулировка задачи:
я не знаю как написать программу:
Многоугольник на плоскости задан целочисленными координатами N вершин в декартовой системе координат. Стороны многоугольника не соприкасаются (за исключением соседних - в вершинах) и не пересекаются. Найти площадь многоугольника.
Предусмотреть проверку входных данных на соответствие условиям задачи.
Решение задачи: «Поиск площади многоугольника»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
struct point
{
int x;
int y;
};
void main()
{
int n,i;
double S=0;
point p[10];
printf("Vedit n=");
scanf("%i",&n);
for(i=0;i<n;i++)
{
printf("Vedit koordunatu verhunu %i:",i+1);
scanf("%i",&p[i].x);
scanf("%i",&p[i].y);
}
p[n]=p[0];
for(i=0;i<n;i++)
{
S=S+(p[i].x*p[i+1].y-p[i].y*p[i+1].x);
}
S=abs(S/2);
printf("\nS=%f",S);
}
Объяснение кода листинга программы
В этом коде выполняется поиск площади многоугольника по координатам вершин. Вот список действий, которые выполняются в коде:
- Считывание количества вершин многоугольника (n) с помощью функции scanf().
- Считывание координат каждой вершины многоугольника с помощью функции scanf().
- Последняя вершина многоугольника считывается дважды, чтобы обеспечить закрытую форму многоугольника.
- Вычисление площади многоугольника с помощью формулы Гаусса.
- Вывод площади многоугольника на экран с помощью функции printf().