Hej, zauważyłem tutaj 2 problemy. Po pierwsze, skoro masz wprowadzić n elementów, to Twoja tablica powinna mieć wielkość n, a nie (n-1). Oczywiście, indeksujemy od zera, zatem największym indexem będzie (n-1), stąd pewnie ten błąd, który popełnia wielu początkujących.
Poza tym, zauważ, że pętla for, w której zwiększasz wartość zmiennej k, wykonuje się n razy, zatem zmienna k po wyjściu z pętli ma wartość n, a największy indeks, to (n-1).
Poprawiłem Twój kod i zamieściłem komentarze co było nie tak. Jeśli coś jest niejasne, to pisz - postaram się wytłumaczyć.
#include <iostream>
using namespace std;
int t,n,j;
int k=0;
int main()
{
cout << "Wprowadz liczbe testow: " << endl;
cin >>t;
if ((t<0)||(t>100))
{
cout<<"Wprowadz liczbe od 0 do 100"<<endl;
cin>>t;
}
while(t>0)
{
cout<<"Wprowadz liczbe elementow a nastepnie kolejno liczby: "<<endl;
cin>>n;
int tablica[n]; //Twoja tablica ma n elementow, a nie n-1
for(j=0;j<n;j++)
{
cin>>tablica[j];
k++;
}
//k po wyjsciu z petli ma wartosc n, a najwiekszy index to n-1, bo indeksujemy od 0
//zmiejszam k o 1
k--;
while(k>=0)
{
cout<<tablica[k]<<" ";
k--;
}
t--;
}
return 0;
}
Jeszczę tylko wspomnę o jednej rzeczy - deklaracja tablicy int moja_tablica[jakas zmienna] nie jest zbyt ładna - uważam, że w tym miejscu raczej powinno się stosować dynamiczną alokację pamięci. Niektóre kompilatory mogą tego nawet nie skompilować, jeśli nie posiadają rozszerzenia VLA - variable length array. Miej to na uwadze, podczas dalszej nauki. Pozdrawiam!