Po pierwsze tablice indeksujemy od 0 co w Twoim przypadku oznacza, że juz na początku wychodzisz poza obszar tablicy
while(na[50]!='q')
Masz tablice charow wiec jeśli chciałbyś wyświetlić cały napisc musiałbyc po kolei wyświetlać całą sekwencje char po charze zaczynajac od char[0]. Możesz spróbować skorzystać z klasy string to trochę ułatwi zadanie.
Jeśliby to robić w Twojej konwencji to bym zapisał to raczej tak
int i = 0
cin >> n[i];
while(n[i] != 'q'){
++i;
if(i == 48){
n[49]= '\0';
break;
}
cin >> n[i];
}
if(i < 48)
n[i+1] = '\0';
Może to można uprościć napisałem tak na szybko