Найти координаты вершин треугольника - 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]);

Объяснение кода листинга программы

В данном коде выполняется следующие действия:

  1. Выводится номер вершины треугольника.
  2. Выводятся координаты вершины треугольника (X и Y). В данном коде используются следующие переменные:
  3. i1 - номер вершины треугольника.
  4. X - массив координат X вершин треугольника.
  5. Y - массив координат Y вершин треугольника. Выполняется цикл, который проходит по всем вершинам треугольника и выводит их координаты.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.182 из 5
Похожие ответы