Mam napisać program, który na wejściu dostaje N oznaczające ilość testów i w kolejnych N - wierszach X1 Y1 X2 Y2 X3 Y3 X4 Y4 oznaczające kolejno współrzędne początku i końca pierwszego odcinka oraz współrzędne początku i końca drugiego odcinka na układzie współrzędnych, a na wyjściu współrzędne punktu przecięcia tych odcinków, z dokładnością do dwóch miejsc po przecinku… Jeżeli nie ma takiego albo jest ich więcej niż jeden, program ma wypisać NIE.
Napisałem coś takiego. Nie wiedzieć czemu przechodzi tylko przykładowy test, a na reszcie pokazuje błąd. Może wy znajdziecie co jest nie tak?
#include
#include
using namespace std;
int main()
{
double x1,y1,x2,y2,x3,y3,x4,y4,x,y;
int n;
double a1,b1,a2,b2;
cin>>n;
for(int i=0;i
{
cin>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4;
a1=(y1-y2)/(x1-x2);
b1=y1-(x1*((y1-y2)/(x1-x2)));
a2=(y3-y4)/(x3-x4);
b2=y3-(x3*((y3-y4)/(x3-x4)));
if(b1==b2) cout<<"NIE"<
else
{
x=(b2-b1)/(a1-a2);
y=(a1*x)+b1;
cout<
}
}
return 0;
}
Z góry dzięki Wam za pomoc.