Cześć wszystkim, chciałem wykonać to zadanie ze SPOJ'a: https://pl.spoj.com/problems/JWSPLIN/
Testując kod samodzielnie nie wyłapałem żadnych błędów, ale SPOJ wyrzuca mi błąd SIGABRT, którego zupełnie nie rozumiem i nie wiem w czym jest problem. Oto mój kod:
#include <iostream>
using namespace std;
int main()
{
int testy;
cin >> testy;
for (int i=0; i<testy; i++)
{
float x[100][3];
float y[100][3];
for (int j=1; j<=3; j++)
{
//cout << i+1 << " Podaj x nr " << j << " : ";
cin >> x[i+1][j];
//cout << i+1 << " Podaj y nr " << j << " : ";
cin >> y[i+1][j];
}
if ((x[i+1][1]==x[i+1][2] && x[i+1][2]==x[i+1][3]) || (y[i+1][1]==y[i+1][2] && y[i+1][2]==y[i+1][3])) //sprawdzenie czy punkty nie leza w jednej linii pionowo lub poziomo
{
cout << "TAK" << endl;
}
else
{
float a;
float b;
float sprawdzenie;
a = (y[i+1][2]-y[i+1][1])/(x[i+1][2]-x[i+1][1]); //obliczenie wspolczynnika a w rownaniu liniowym na podstawie 2 pierwszych punktow
b = y[i+1][1] - (a*x[i+1][1]); //obliczenie wspolczynnika b w rownaniu liniowym
sprawdzenie = a*x[i+1][3] + b; //obliczenie wartosci y dla wspolrzednej x trzeciego punktu
if (sprawdzenie==y[i+1][3]) //sprawdzenie czy trzeci punkt lezy na jednej linii wraz z pierwszym i drugim punktem
{
cout << "TAK" << endl;
}
else
{
cout << "NIE" << endl;
}
}
}
return 0;
}