53 / 80
Jun 2019

Przeczytałem pobieżnie. Nie obraź się, ale za dużo tam zbędnych uwag.
Fatkycznie punkt 4. jest wartościowy.
Wyświeltlanie musi być wykonane po przypisaniu wartości. Banalny błąd, ale jakoś to przeoczyłem. Teraz rozumiem naturę problemu, skąd te dziwne watrości w pierwszej połowie. Dziękuję za pomoc.

@majormarino
Nie obrażę się, ale z chęcią dowiem się która uwaga jest zbędna. Chyba, że chodzi Ci tylko by zaliczyć zadanie, a gówniany kod Ci nie przeszkadza, wtedy faktycznie cenna była tylko czwórka.

2 months later

Panowie, pomożecie czemu sędzia on-line mi to odrzuca? u mnie w code::blocks to chodzi bez problemu

#include

using namespace std;

int n,t;
int tab[100];

int main ()
{
cout<<"Podaj liczbe testow: ";
cin>>t;

if (t<=100)
{
    for (int i=0; i<t; i++)
    {
        //cout<<"Podaj ilosc elementow "<<i+1<<" tablicy: ";
        cin>>n;

        for (int i=0; i<n; i++)
        {
            //cout<<"Podaj "<<i+1<<" element tablicy: ";
            cin>>tab[i];
        }

        cout<<"Tablica odwrocona znajduje sie ponizej"<<endl;

        for (int i=n-1; i>=0; i--)
        {
            cout<<tab[i]<<" ";
        }
        cout<<endl;
    }
}

return 0;

}

wskazane jest przekazywanie kodu poprzez link do ideone.com9
tam też można testować program, zrób to dla przykładowych danych podanych w zadaniu a powinieneś zobaczyć różnicę

7 months later

dlaczego sędzia nie zalicza mi tego zadania.

Pozdrawiam,
i z góry dziękuję za pomoc.

Przecież nawet zadanie testowe nie jest poprawnie wykonane. Przypatrz się drugiej pętli for.

7 months later

Witam
Pomorze mi ktoś napisałem program i niby wszystko się zgadza ale pokazuję błąd w wykonaniu. Trochę poczytałem o tym ale nadal nie bardzo rozumiem.

Link do kodu:

Wstaw poprawnie kod i sformatuj go. Tablice o rozmiarze n indeksujemy od 0 do n - 1. Dlatego masz dwie pętle źle napisane. Rozmiar tablicy powinien wynosić 100 (patrz treść zadania).

Przyklad troszke trudniejszy niz w tresci zadania:

Wejście:
11 12 13

Wyjście:
13 12 11

1 month later

o czym zapominam?

To raczej nie kwestia zapominania, chyba, że zapomniałaś,że masz już w tym zadaniu 3 x AC ? :wink:

Jeżeli natomiast chcesz poćwiczyć wskaźniki itd, to robisz to w dziwaczny sposób. Twój kod całkowicie mi się nie podoba, nawet po poprawkach. A jak, np tak:

zamiast:

...
 cout << OdwrocKolejnoscLiczb(ileLiczb);
 }
    delete [] OdwrocKolejnoscLiczb(ileLiczb);

można w ostateczności delete[] zamiast cout, w środku pętli, a nie poza nią – tutaj cout jest błędem.

...
delete [] OdwrocKolejnoscLiczb(ileLiczb);
    }

Jeszcze moze warto wspomniec, ze wskazniki wlasciwie nie uczestnicza w przetwarzaniu danych.

Gorzej nawet. Nawet po mojej poprawce jest i mały wyciek pamięci i mazanie po niezalakowanej [nie przydzielonej] pamięci.

PS
takie tworzenie tablicy:

int liczby[iloscElementow];

Jest błędne - ani to tablica statyczna ani dynamiczna - to po prostu gruby, często stotykany tutaj na spoju u początkujących błąd. Dla małych wartości ilości elementów działa, ale tym bardziej można się szybko naciąć, jeżeli wejdzie taki błąd w nawyk.

Mazanie po pamieci juz bylo.
Gdy wstawi sie delete[] zamiast cout w petli to wycieku chyba nie bedzie. Poza petla trzeba oczywiscie usunac cala linijke z delete.

Oczywiście masz rację. Po prostu kod jest mocno przekombinowany - lub patrząc z drugiej strony, po prostu napisany przez początkującą osobę z błędami, które utrudniają [mi] analizowanie kodu i wydawało mi się, że będzie nadal mały wyciek w innym miejscu [zmienna int *w], ale jednak nie.

Dzięki za uwagi. Akurat nie skupiałam się jeszcze na ćwiczeniu wskaźników a szukałam bardziej sposobu na zwrócenie tablicy, podobno można właśnie przez wskaźnik. Chyba po prostu muszę się skupić na doczytaniu o tablicach i wskaźnikach, i podejść do problemu jeszcze raz :>

W takim razie jestem pełen podziwu. Nie uczyłaś /ćwiczyłaś wskaźników, a “ukręciłaś” taki kawał kodu, nie żartuję! Fakt że z błędami ale i tak podziwiam.

Co do zwracania - tak można, ale to już trochę historia bo jest dużo lepszy sposób - referencja.

Najlepszym sposobem [jedynym?] nauczenia się czegokolwiek jest robienie tego i upadanie [jazda na koniu, na rowerze czy programowania]. Ale od czasu do czasu trzeba też poczytać zaczynając od podstaw - a co czytasz?

SPOJ ma wiele zalet i wad. Jedną z najbardziej mnie niepokojącą jest to, że może utrwalać błędy programisty. Więc musisz zdawać sobie sprawę, że mimo AC, twój kod może być fatalny. Jak temu zapobiec? Jedyny sposób jaki widzę - znajdź sobie mentora, który sprawdzi twój kod i zwróci uwagi na błędy. Inny sposób, to kodowanie we dwie osoby i sprawdzaniwe na wzajem swoich kodów. Na forum nie można tego robić, bo są osoby słabe duchem i dostępny tutaj gotowy kod nie byłby dla nich dobry.

Nie uczyłaś /ćwiczyłaś wskaźników, a “ukręciłaś” taki kawał kodu, nie żartuję! Fakt że z błędami ale i tak podziwiam.

Ach ten Mirosław Zelent zainspirował tylu programistów do takiego używania wskażników :frowning: