Тругольники
Добавлено: 10 апр 2005, 06:32
:shock: Привет всем
8) Помогите вот с такой задачей:
Дано 3n точек на плоскости, причем никакие 3 из них не лежат на 1ой прямой.
Построить множество n треугольников с вершинами в этих точках так, чтобы никакие 2 треугольника не пересекались и не содержали друг друга.
Вот то что я сделал:
8) Теперь надо:Построить множество n треугольников с вершинами в этих точках так, чтобы никакие 2 треугольника не пересекались и не содержали друг друга.
Помогите плз :shock:
8) Помогите вот с такой задачей:
Дано 3n точек на плоскости, причем никакие 3 из них не лежат на 1ой прямой.
Построить множество n треугольников с вершинами в этих точках так, чтобы никакие 2 треугольника не пересекались и не содержали друг друга.
Вот то что я сделал:
Код: Выделить всё
#include <fstream.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define M 100
float x[M];
float y[M];
int i,j,k,n;
//----------------------------------------------------------//
int Chten()
{
ifstream chten;
chten.open("c:\\bc\\zadachi\\koor.txt");
if (chten==NULL)
{
cout<<"error";
return 0;
}
chten >> n;
for (i=0;i<n;i++)
{
chten>>x[i];
chten>>y[i];
}
}
//-----------------------------------------------------------//
int proverka()
{
for (i=0;i<n;i++){
for (j=i;j<n;j++){
for (k=j;k<n;k++){
if ((x[j]-x[i])==0) continue;
if ((y[j]-y[i])==0) continue;
if ((k==j) || (i==j)) continue;
if (((x[k]-x[i])/(x[j]-x[i]))-((y[k]-y[i])/(y[j]-y[i]))==0)
{
cout<<"error";
return 0;
}
}}}}
//===========================================================//
int main()
{
clrscr();
Chten();//чтение точек из файла//
proverka();//чтобы никакие 3 точки не лежали на 1ой прямой//
printf("\nX\n");//распечатка исходных точек//
for (i=0;i<n;i++)
{
printf("%f",x[i]);
printf("%c",i%2?'\t':'\n');
}
printf("\nY\n");
for (i=0;i<n;i++)
{
printf("%f",y[i]);
printf("%c",i%2?'\t':'\n');
}
getch();
}
Помогите плз :shock: