• 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.

VPS Starter Arubacloud
0 głosów
1,053 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 1,717 wizyt
pytanie zadane 5 sierpnia 2018 w C i C++ przez stones321 Nowicjusz (200 p.)
0 głosów
2 odpowiedzi 1,270 wizyt
pytanie zadane 8 kwietnia 2018 w SPOJ przez Jakub 0 Pasjonat (23,120 p.)
0 głosów
1 odpowiedź 135 wizyt
pytanie zadane 12 marca 2019 w C i C++ przez Mavannkas Bywalec (2,290 p.)

92,452 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 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.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...