Bo drugą tablicę zaczynasz zapisywać od tyłu, nadpisując śmieci. Musisz sobie zdawać sprawę, że początkowo w tablicy mogą i często pojawiają się śmieci i właśnie zaczynasz na początku wypisywać te śmieci.
Gduy dojedziesz do połowy jest już ok. Jak napisała Julia, po prostu sobie to narysuj i przeanalizuj krok po kroku lub dodaj do programu wydruki kontrolne, krok po kroku - takie pseudo debugowanie.
Przecież na to pytanie już dawno dostałeś odpowiedź od Yuli i ode mnie podpowiedź podpunkt 4. Czytałeś to wszystko czy stwierdziłeś, że za dużo tekstu? Zacytuję:
- To co wskazała @yula. Podpowiedź: przypisujesz coś do jakiegoś elementu tablicy, a wyświetlasz inny.
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.
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ę
Dzięki za wskazówke
Zadanie zakończone,
Jestem swieżakiem - dlatego nie wiedziałem o ideone.com2
To raczej nie kwestia zapominania, chyba, że zapomniałaś,że masz już w tym zadaniu 3 x AC ?
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);
}
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.