• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zadanie z tablicami, współliniowość punktów.

Cloud VPS
0 głosów
1,403 wizyt
pytanie zadane 9 listopada 2016 w C i C++ przez Koper Początkujący (310 p.)
edycja 9 listopada 2016 przez Koper

Cześć, to mój pierwszy post na forum więc proszę o wyrozumiałość, jeżeli wstawię tutaj coś nie tak jak trzeba :) od jakiegoś czasu staram się rozwiązywać zadania na polskim spoj. Aż wreszcie natrafiłem na problem, z którym nie potrafię sobie poradzić. Mój program wywala dziwne błędy, chociaż sprawdzałem już kod krok po kroku na wszystkie wymyślone przeze mnie sposoby. Oto polecenie:

Najpierw zostaje podana liczba t (1 < t ≤ 100) wykonywanych testów. W każdej następnej linii podawane są współrzędne trzech punktów będącymi liczbami całkowitymi z przedziału [-1000, 1000]. Kolejne współrzędne oddzielone są znakiem tabulacji.

Output

Jako wydruk otrzymujemy słowo TAK, gdy podane trzy punkty są współliniowe albo słowo NIE, gdy nie są współliniowe. Każda odpowiedź zapisywana jest w osobnej linii.

Example

Input:                                         Output:

1 2 3 4 5 6                                 TAK

1 3 1 4 1 -3                                TAK       

#include <iostream>

using namespace std;

int tablica[5];
int t,a,b,c;
int main()
{
    cin>>t;
    for(int i=1; i<=t; i++)                                // petla do ilosci testow
    {
        for(int i=0; i<=5; i++)                            //petla wpisujaca zmienne do tablicy
        {
            cin>>tablica[i];
        }
        a=(tablica[3]-tablica[1])/(tablica[2]-tablica[0]);//b od a
        b=(tablica[5]-tablica[3])/(tablica[4]-tablica[2]);//c od b
        c=(tablica[5]-tablica[1])/(tablica[4]-tablica[0]);//c od a
        /*for(int i=0; i<=5; i++)
        {
            tablica[i]=0;
        }                               petla do zerowania tablicy, nie wiem czy jest potrzebna*/

        if((a==c) && (b==c))
        {
            cout<<"TAK\n";
        }else
        {
            cout<<"NIE\n";
        }

        cout<<"\na= "<<a<<"\nb= "<<b<<"\nc= "<<c<<endl;   //sprawdzanie wynikow
    }
}









 

 

 

 

komentarz 9 listopada 2016 przez Undisputed Gaduła (3,040 p.)
Pierwsze co zwiększ rozmiar tablicy z 5 na 6
komentarz 9 listopada 2016 przez Koper Początkujący (310 p.)
Próbowałem nawet przy rozmiarze 100 i niestety nic.
komentarz 10 listopada 2016 przez efiku Szeryf (75,160 p.)

Mój program wywala dziwne błędy, chociaż sprawdzałem już kod krok po kroku na wszystkie wymyślone przeze mnie sposoby.

Jak rozumiem sprawdziłeś w debugerze krok po kroku?

komentarz 17 marca 2017 przez Patryk Kożuchowski Początkujący (460 p.)
Mam podobnie problem jest w metodzie obliczania, kiedy mianownik=0. To zadanie można policzyć tylko wektorami?

1 odpowiedź

0 głosów
odpowiedź 9 listopada 2016 przez Undisputed Gaduła (3,040 p.)
edycja 10 listopada 2016 przez Undisputed

Dopiero co się uczę programować 

ale nabazgrałem coś takiego:

#include <iostream>

using namespace std;

int tab[6];
int t;
int main()
{
    cin>>t;
    for(int j=1; j<=t; j++)                                // petla do ilosci testow
    {
        for(int i=0; i<6; i++)                            //petla wpisujaca zmienne do tablicy
        {
            cin>>tab[i];
        }
        if( (tab[0] == tab[2] && tab[2] == tab[4] && tab[0]==tab[4]) || (tab[1] == tab[3] && tab[3] == tab[5] && tab[1]==tab[5]) || (tab[5]-tab[4])==(tab[3]-tab[2])==(tab[1]-tab[0]) )
        {
            cout << "Tak" << endl;
        }
        else
        {
            cout << "Nie " << endl;
        }
    }
    return 0;
}

EDIT: 13:35 10.11.2016

Poprawiony kod.

Teraz działa wg mnie :D

komentarz 10 listopada 2016 przez Koper Początkujący (310 p.)
Dziękuje za zainteresowanie. Sprawdzałem to pod względem poprawności wyników i niestety nie pasuje przy takich wejściach:

2 -1           3 -1           -4 -1

0 0            0 0              0 0

 A co do Twojego zapisuje tego wzoru, staram się to właśnie przeanalizować :)
komentarz 10 listopada 2016 przez Undisputed Gaduła (3,040 p.)
Ok, już jak to zrobić, za 5min prześle rozwiazanie

Podobne pytania

0 głosów
2 odpowiedzi 2,128 wizyt
pytanie zadane 5 sierpnia 2018 w C i C++ przez stones321 Nowicjusz (200 p.)
0 głosów
2 odpowiedzi 1,757 wizyt
pytanie zadane 8 kwietnia 2018 w SPOJ przez Jakub 0 Pasjonat (23,120 p.)
0 głosów
1 odpowiedź 236 wizyt
pytanie zadane 12 marca 2019 w C i C++ przez Mavannkas Bywalec (2,290 p.)

93,457 zapytań

142,453 odpowiedzi

322,722 komentarzy

62,837 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...