Найти координаты вершин треугольника - C (СИ)
Формулировка задачи:
Доброго времени суток.
Формулировка задания следующая:
В заданном множестве точек определить, какие из них образуют треугольник наименьшей площадиУ меня есть проблема:
мне нужно в дополнение к этому коду указать, какой именно треугольник наименьший по площади и указать координаты вершин этого треугольника. Мне подсказывали, что можно найти эти точки через структуру, которая будет содержать точки и площадь. Помогите кодом или советом-подсказкой. Буду очень признателен. Код:#include <math.h> #include <stdio.h> #include <conio.h> #include <iostream> using namespace std; int main() { setlocale(LC_ALL, "Russian"); int i,j,k,N,i1,j1,k1; double a,b,c,p,s,mins; cout << "Введите количество точек: \n"; cin >> N; double * X = new double[N]; double * Y = new double[N]; for (int i = 0; i < N; i++) { cout << "Введите x" << i << endl; cin >> X[i]; cout << "Введите y" << i << endl; cin >> Y[i]; } mins=1E30; for(i=0;i<N;i++) { for(j=0;j<N;j++) { for(k=0;k<N;k++) { if((i==j) || (i==k) || (j==k))continue; a=sqrt((X[i]-X[j])*(X[i]-X[j])+(Y[i]-Y[j])*(Y[i]-Y[j])); b=sqrt((X[i]-X[k])*(X[i]-X[k])+(Y[i]-Y[k])*(Y[i]-Y[k])); c=sqrt((X[j]-X[k])*(X[j]-X[k])+(Y[j]-Y[k])*(Y[j]-Y[k])); p=(a+b+c)/2.0; s=sqrt(p*(p-a)*(p-b)*(p-c)); if(s<mins && s != 0) { mins=s; i1=i;j1=j;k1=k; } } } } cout << s << endl; _getch(); delete[] X; delete[] Y; return 0; }
Решение задачи: «Найти координаты вершин треугольника»
textual
Листинг программы
printf("Номер вершины=%d, координаты: X=%f Y=%f",i1,X[i1],Y[i1]);
Объяснение кода листинга программы
В данном коде выполняется следующие действия:
- Выводится номер вершины треугольника.
- Выводятся координаты вершины треугольника (X и Y). В данном коде используются следующие переменные:
- i1 - номер вершины треугольника.
- X - массив координат X вершин треугольника.
- Y - массив координат Y вершин треугольника. Выполняется цикл, который проходит по всем вершинам треугольника и выводит их координаты.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д