Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Denis Gresko
Сообщений: n/a
#1

Даны два множества точек на плоскости. Из первого множества выбрать три различные точки так, чтобы треугольник с вершинами в этих точках содержал (ст - C++

22.12.2013, 12:20. Просмотров 466. Ответов 0
Метки нет (Все метки)

Уважаемые в чем проблема

#include "stdafx.h"
#include "conio.h"
#include "time.h"
#include "math.h"
#include "stdlib.h"
#include "iostream"

void rfv(float *A, int M, int N, int D)
{int i, j; for (i=0;i<M;i++) {
for (j=0;j<N;j++)
{
*(A+i*D+j)=-10+rand()%20;
}
}
}

void prt(char s[], float *A, int N, int M, int D)
{
int i, j;
printf("%s\n", s);
for (i=0;i<N;i++)
{
for (j=0;j<M;j++)
{
printf("%4.f", *(A+i*D+j));
}
printf ("\n");
}
}


int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "Russian");
float U[100][2];
float L[100][2];
int M=0, N=0, J=2, Z=2, m=0, n=0;
int p,p1,p2,p3,x1,x2,x3,y1,y2,y3,i,j,k,K1,K2;
int b[100][10],V[100][2];
float A=0, B=0, C=0,tx,ty;
float d=0, min=10000;
time_t T;
srand (time(&T));

do
{
printf("\nВведите количество точек во множестве А (не больше 100): ");
scanf ("%u", &M);
printf("\nВведите количество прямых во множестве B (не больше 100): ");
scanf ("%u", &N);
}
while (!(M<=100 && M>0 && N<=100 && N>0));
printf("\n");

rfv(&U[0][0], M, J, 2);
prt("Множество А:", &U[0][0], M, J, 2);
printf("\n");
rfv(&L[0][0], N, Z, 2);
prt("Множество B", &L[0][0], N, Z, 2);
printf("\n");



for(i=0;i<M-2;i++){
for(j=i+1;j<M-1;j++){
for(k=j+1;k<M;k++){
x1=U[i][0]; y1=U[i][1];
x2=U[j][0]; y2=U[j][1];
x3=U[k][0]; y3=U[k][1];
if(((y2-y1)*(x3-x2))!=((y3-y1)*(x2-x1))){
x1=U[i][0]; y1=U[i][1];
x2=U[j][0]; y2=U[j][1];
x3=U[k][0]; y3=U[k][1];}

K1=0;
K2=0;

for(p=1;p<N;p++){

tx=L[0][p];
ty=L[1][p];

p1=(x1-tx)*(y2-y1)-(x2-x1)*(y1-ty);
p2=(x2-tx)*(y3-y2)-(x3-x2)*(y3-ty);
p3=(x3-tx)*(y1-y3)-(x1-x3)*(y3-ty);
if(((p1>0)&&(p2>0)&&(p3>0))||((p1<0)&&(p2<0)&&(p3<0)))

K1++;
K2++;
printf("[%d][%d] [%d][%d] \n",L[p][0],L[p][1]);

if(K1=K2&&K1!=0){

V[1][1]=U[i][1];
V[1][2]=U[i][2];
V[2][1]=U[j][1];
V[2][2]=U[j][2];
V[3][1]=U[k][1];
V[3][2]=U[k][2];

V[1][1]=x1;
V[1][2]=y1;
V[2][1]=x2;
V[2][2]= y2;
V[3][1]=x3;
V[3][2]=y3;


}

}

}

}
}
if (K1==0)
printf("Treugolnik ne sodergit tochec\n");
else
printf("\nTreugolnik s vershinami [%d][%d], [%d][%d],[%d][%d].Sodergit v sebe %d,%d tochek",x1,y1,x2,y2,x3,y3,K2,K1);


getch();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2013, 12:20     Даны два множества точек на плоскости. Из первого множества выбрать три различные точки так, чтобы треугольник с вершинами в этих точках содержал (ст
Посмотрите здесь:

C++ Выбрать 3 разные точки заданного на плоскости множества точек,составляющие треугольник наибольшего периметра
C++ Из заданного на плоскости множества точек выбрать три различные точки
C++ Выбрать три разные точки заданного на плоскости множества точек, составляющие треугольник наибольшего периметра
C++ Из заданного на плоскости множества точек выбрать такие три, которые составляют треугольник наибольшего периметра.
Работа С Массивами (Выбрать три различные точки из заданного множества точек на плоскости так...) C++
C++ На плоскости задано множество точек. Выбрать три различные точки так, чтобы проходящая через них окружность делила это множество на группы
Из заданного множества точек на плоскости выбрать три разные точки A, B, C C++
Из задоного множества точек на плоскости выбрать две различные точки C++
C++ Из заданного на плоскости множества точек выбрать три различные точки
Из заданного множества точек на плоскости выбрать две различные точки так C++
Выбрать из точек множества три таких, чтобы в получившийся треугольник влезо наибольшее количество точек C++
C++ Из заданного множества точек на плоскости выбрать две различные точки

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 13:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru