19 / 52
Nov 2017

U mnie dużego, ale nie za niewysyłanie błędnego kodu (dawanie plusików osobom, które nie wysyłają kodu nie działającego dla przykładowych danych to trochę jak dawanie plusików aptekarzom za to, że raczyli sprzedać wodę utlenioną :wink:), a za walkę. Z tego powodu podpowiedź będzie większa niż zwykle. Przynajmniej według mnie :wink:

Po kodzie zgaduję, że nie masz wprawy w C++. Stąd polecam Ci napisać kod prościej, a ewentualnie wskaźniki wykorzystać po uzyskaniu AC - małymi kroczkami do celu.

1) zrób jedną duuużą tablicę, np. na 1000 elementów. Wówczas wejście na pewno Ci się zmieści, a używanie jednej tablicy o stałym rozmiarze jest prostsze niż new i delete.
2) dobrze wczytujesz t i n. Przy takiej tablicy jak napisałem będziesz pracować na elementach od 0 do n więc żadna zmiana z powodu 1) nie nastąpi na tym etapie
3) po wczytaniu liczb do tablicy (w takiej kolejności jak są na wejściu - nie kombinuj tu tylko na etapie ich wypisywania) w kolejnej pętli wypisuj je zgodnie ze specyfikacją zadania. Pamiętaj o spacjach (cout << " ") i endl

Oczywiście Twój pomysł może być dobry, a nawet lepszy od mojego. Sądzę jednak, że mój jest prostszy - wczytaj wejście w jednej trywialnej pętli bez zbędnego analizowania wczytywanych liczb, a w drugiej wypisz najpierw liczby na pozycjach takich a potem na siakich.

Jeżeli jednak wolisz swoje rozwiązanie, z pewnością inne osoby Ci z tym pomogą (ja niestety nie mam czasu wczytywać się w kod) :wink:

Jestem pewien, że gdybyś przeznaczył tylko 15 minut z "tych 22 godzin" [w cudzysłowiu] na dokładne przeczytanie treści zadania, nie potrzebowałbyś ich aż tylu. Moja rada, przeczytaj w końcu, zrozum o co chodzi i zacznij od początku, tak, żeby twój program próbował robić to co wymagane jest w zadaniu, a nie twoje błędne wyobrażenie o tym co jest wymagane.

Dobra, teraz mi głupio, bo rzeczywiście nie zrozumiałem zadania, dostałem AC, jestem Wam wdzięczny za pomoc, chociaż jest mi głupio to jestem zadowolony; Jak też słusznie zauważyliście nie jestem zbyt biegły w c++, to jeszcze ciągle moje początki z programowaniem :smiley:
Wrzuciłbym kod, ale myślę, że w ten sposób nie pomogę nikomu w niczym :wink:

Nie tylko nie dawaj kodu (nie podajemy działającego kodu), ale skasuj teraz wszystkie poprzednie linki.

Pomógłbyś, tzw cheaterom, osobom kopiującym gotowe kody. Inne osoby i tak tego nie będą czytać, tylko od razu zadawać na nowo stare pytania, więc błędne kody można spokojnie zostawić w "prezencie" dla bezmyślnych kopiarzy.

4 months later

Hej, stworzyłem taki kod i nie wiem gdzie jest błąd, proszę o pomoc.

666666555554444333

Jak to ma się do porządku opisanego w zadaniu?

no ale w codeblock mi dobrze wyrzuca a na ideone jest zle, dlaczego?

A od czego @narbej zaczął swojego posta? Bo nie od space i endl :wink:

HINT
Ile co najwyżej elementów mieści się w Twojej tablicy dla dowolnych danych wejściowych?

HINT2
Nie dam głowy czy to jest przyczyną wszelkiego zła na świecie, ale z dużą dozą prawdopodobieństwa z = 1 przy statycznej tab[z] implikuje jajca w a-krotnym tab[z++] = b

dalem tab[1000] i na ideone mi wszystko ladnie robi, w codeblock tez a wciąż gdzies mam blad, dodałem tez endl na końcu

Ok. A teraz porównaj output Twojego kodu z outputem w treści zadania. Twój kod dla przykładowego testu wypluwa:

2513
897

Czy istnieje różnica między Twoim wyjściem a przykładowym wyjściem w treści zadania?

HINT
Jak zawsze @narbej zasugerował dyskretnie jeszcze jeden problem :wink:

HINT2
Ja się produkuję, a @narbej napisał wszystkie błędy w jednym krótkim poście, którego trzeba było BAAAARDZO uważnie przeczytać (jak większość jego postów) :wink:

O kurde nie sadzilem ze spacja może mieć tak wielkie znaczenie :smiley:
Dzieki za pomoc, kod działa, wybacz ze tak dopytywałem ciagle :slight_smile:

9 months later

Mam działający w codeblocks program ale na spoju wyskakuje błąd wykonania SIGABRT

#include
using namespace std;
int t,n;
int main()
{
cin >>t;
for(int a=1; a<=t; a++)
{
int *tablica;
tablica = new int [n];
cin >>n;
for (int i=1; i<=n; i++)
{cin >> tablica[i];}
for(int i=2; i<=n; i+= 2)
{cout << tablica[i] << endl;}
for (int i=1; i<=n; i+= 2)
{cout << tablica [i] << endl;}
}
return 0;
}