Zadanie brzmi:
Lena bawi się układem współrzędnych, ale nie zna sęe na figurach płaskich i nie umie liczyć. Poprosił Cię
o zrobienie programu OpenSource, który sprawdzi czy figura geometryczna wyznaczona przez współrzędne
podane przez Lene jest prostokątem, rombem, kwadratem, czy po prostu czworokątem, oraz policzy jej
pole
Wejście
Pierwszy wiersz standardowego wiersza zawiera osiem liczb całkowitych x1, x2, x3, x4, y1, y2, y3, y4 będące
współrzędnymi kolejnych wierzchołków figury. (−1000 ≤ x1, x2, x3, x4, y1, y2, y3, y4 ≤ 1000). Wierzchołki
podane są zgodnie z ruchem wskazówek zegara
Wyjście
Twój program powinien wypisać na standardowe wyjście:
• K - gdy figura jest kwadratem
• R - gdy figura jest rombem
• P - gdy figura jest prostokątem
• C - gdy nie jest żadna podaną powyżej figurą, czyli jest innym czworokątem
Po literze należy wypisać jedną liczbę całkowitą, równą polu rozpatrywanej figury
Przykład
Dla danych wejściowych:
0 4 7 4 7 0 0 0 odpowiednio x1,y1,x2,y2,x3,y3,x4,y4
poprawnym wynikiem jest:
P 28
nie wiem gdzie robię błąd
mój kod:
#include
#include
using namespace std;
int x[6],y[6],a,b,c,d,p=0,wx,mx,wy,my,p1,p2,p3,p4;
int main()
{ios_base::sync_with_stdio(0);
for(int i=1;i<=4;i++)
{
cin>>x[i];
cin>>y[i];
}
wx=max(max(x[1],x[2]),max(x[3],x[4]));
wy=max(max(y[1],y[2]),max(y[3],y[4]));
mx=min(min(x[1],x[2]),min(x[3],x[4]));
my=min(min(y[1],y[2]),min(y[3],y[4]));
a=(x[2]-x[1])(x[2]-x[1])+(y[1]-y[2])(y[1]-y[2]);
b=(x[3]-x[2])(x[3]-x[2])+(y[2]-y[3])(y[2]-y[3]);
c=(x[4]-x[3])(x[4]-x[3])+(y[3]-y[4])(y[3]-y[4]);
d=(x[1]-x[4])(x[1]-x[4])+(y[1]-y[4])(y[1]-y[4]);
p1=abs(x[1]-x[2])*abs(y[1]-y[2]);
p2=abs(x[2]-x[3])*abs(y[2]-y[3]);
p3=abs(x[4]-x[3])*abs(y[4]-y[3]);
p4=abs(x[1]-x[4])abs(y[1]-y[4]);
p=((((wx-mx)(wy-my))*2)-((p1+p2+p3+p4)))/2;
if(a==b && b==c && c==d && a==p && c==p)
{
cout<<“K”<<" “<<p<<endl;
}
else
{
if(a==b && b==c && c==d )
{
cout<<“R”<<” “<<p<<endl;
}
else
{
if(a==c && b==d && ab==pp && ab==cd)
{
cout<<“P”<<” “<<p<<endl;
}
else
{
cout<<“C”<<” "<<p<<endl;
}
}
}
}