Dato je n tacaka u ravni svojim koordinatama. Napisati program za ispitivanje da li medu zadatim tačkama postoje četiri koje predstavljaju koordinate tjemena pravougaonika.
Ja sam uradio ovako:
//#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
int tacke_x[100];
int tacke_y[100];
int duzine_kordinate_x[100][3];
int n,i,j,duzina,trenutna_duzina_x=2;
cout << "Unesi broj tacaka: ";
cin >> n;
for (i=1;i<=n;i++)
{
cout << i <<". tacka unesi x,y ";
cin >> tacke_x[i];
cin >> tacke_y[i];
}
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
{
if (tacke_y[i]==tacke_y[j])
{
if (tacke_x[i]!=tacke_x[j])
if (tacke_x[i]<tacke_x[j])
{
duzina=tacke_x[j]-tacke_x[i];
duzine_kordinate_x[trenutna_duzina_x][0]=i;//pamti jednu tacku
duzine_kordinate_x[trenutna_duzina_x][1]=j;//pamti drugu tacku tj. indexe
duzine_kordinate_x[trenutna_duzina_x][2]=duzina;
}
else
{
duzina=tacke_x[i]-tacke_x[j];
duzine_kordinate_x[trenutna_duzina_x][0]=j;// na nuli je bliza tacka
duzine_kordinate_x[trenutna_duzina_x][1]=i;
duzine_kordinate_x[trenutna_duzina_x][2]=duzina;
}
trenutna_duzina_x++;
}
}
trenutna_duzina_x--;
for (i=1;i<=trenutna_duzina_x;i++)
for (j=2;j<=trenutna_duzina_x;j++)
{
if (duzine_kordinate_x[i][2]==duzine_kordinate_x[j][2])
{
if (abs(tacke_y[duzine_kordinate_x[i][0]]-tacke_y[duzine_kordinate_x[j][0]])
==abs(tacke_y[duzine_kordinate_x[i][1]]-tacke_y[duzine_kordinate_x[j][1]]))
cout <<"Pravugaonik cine tacke :" <<duzine_kordinate_x[i][0]<<duzine_kordinate_x[i][1]<<duzine_kordinate_x[j][0]<< duzine_kordinate_x[j][1];
}
}
}
Kad kompajlira sve je uredu, ali kad unesem sve koordinate, javi mi gresku. "Program has encountered....". Znate li sta je problem?
Hvala!
[Ovu poruku je menjao X Files dana 14.04.2009. u 19:56 GMT+1]