|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.10.2018, 22:34 | #1 |
Регистрация: 02.10.2018
Сообщений: 9
|
Язык Си.Если многоугольник выпуклый,вычислить площадь
Не работает программа.Подскажите,что не так
#include<conio.h> #include<stdio.h> #include<math.h> #include<locale.h> int main(void) { setlocale(LC_ALL, "Rus"); int x[100]; int y[100]; int n = 0; float sum = 0; float k = 0; float s; float r = 0; printf("Введите количество вершин\n"); scanf_s("%i", &n); if (n > 2) { for (int i = 0; i <n; i++) { printf("Введите координаты вершины\n"); scanf_s("%i %i", &x[i], &y[i]); } } else printf("Недостаточно кол-во вершин для многоугольника\n"); bool f = true; int t = x[n-1] * y[1] - x[1] * y[n-1]; int z = t / fabs(t); int p = 1; for (int i = 0; i < n - 1; i++) { k = x[i] * y[i+1] - x[i + 1] * y[i]; p = p * z*k / fabs(k); if (p <= 0) f = false; } if (f = false) printf("Многоугольник не выпуклый\n"); if (f) { for (int i = 0; i < n - 2; i++) { r = fabs((x[0] - x[i + 2])*(y[i + 1] - y[i + 2]) - (y[0] - y[i + 2])*(x[i + 1] - x[i + 2])) / 2; sum = sum + r; } printf("%f", sum); } _getch(); return 0; } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Напишите функцию calculateArea. -Если функция принимает одно число "a" - она возвращает площадь квадрата (a*a). -Если функция принимает два числа "a, b" - она возвращает площадь пр | Skeydzh | Фриланс | 4 | 04.07.2017 22:42 |
Вычислить площадь выпуклого многоугольника, если известны координаты его вершин. | yuliya.al18 | Помощь студентам | 3 | 19.02.2017 18:39 |
Выпуклый многоугольник | litrein | Помощь студентам | 1 | 07.12.2015 13:03 |