Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Denis Gresko
#1

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

22.12.2013, 12:20. Просмотров 525. Ответов 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++):

Работа С Массивами (Выбрать три различные точки из заданного множества точек на плоскости так...) - C++
Задание: Выбрать три различные точки из заданного множества точек на плоскости так, чтобы была минимальной разность между количествами...

Из заданного на плоскости множества точек выбрать три различные точки - C++
Само задание звучит так: &quot;Из заданного на плоскости множества точек выбрать три различные точки так, чтобы разность между площадью...

Из заданного на плоскости множества точек выбрать три различные точки - C++
Здравствуйте, помогите пожалуйста написать программу: Из заданного на плоскости множества точек выбрать три различные точки так, чтобы...

Из заданного множества точек на плоскости выбрать две различные точки так - C++
Из заданного множества точек на плоскости выбрать две различные точки так, чтобы количество точек, лежащих по разные стороны от прямой,...

Выбрать три разные точки заданного на плоскости множества точек, составляющие треугольник наибольшего периметра - C++
Задание, как множество точек вывести на экран понял. #include &lt;iostream&gt; #include &lt;time.h&gt; #define _CRT_SECURE_NO_DEPRECATE 0 using...

Выбрать из множества три разные точки так, чтобы внутри треугольника содержалось максимальное количество точек - C++
Задача такова : Из заданного множества точек на плоскости выбрать три разные точки А В С так, чтобы внутри треугольника АВС содержалось...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2013, 12:20
Привет! Вот еще темы с ответами:

Из заданного множества точек на плоскости выбрать две различные точки - C++
Из заданного множества точек на плоскости выбрать две различные точки так, что бы количества точек, лежащих по разные стороны прямой,...

Из задоного множества точек на плоскости выбрать две различные точки - C++
Привет всем пожалуста помогите найти ошибку в коде. условия задачи: Из задоного множества точек на плоскости выбрать две различные точки...

Из заданного множества точек на плоскости выбрать три разные точки A, B, C - C++
Из заданного множества точек на плоскости выбрать три разные точки A, B, C, так, чтобы внутри треугольника ABC содержалось максимальное...

На плоскости задано множество точек. Выбрать три различные точки так, чтобы проходящая через них окружность делила это множество на группы - C++
На плоскости задано множество точек. Выбрать три различные точки так, чтобы проходящая через них окружность делила это множество на группы,...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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