En realidad el programa estará controlado por el mnúmero de asientos libres.
Entrarías en un ciclo infinito, si le dices al viajero que ese asiento está ocupado y que elija otro (que tambié está ocupado).
// Inicialmente AsientosTotales = 21 (ó 20 si te expresaste mal).
// Inicialmente AsientosLibres = AsientosTotales
// Inicialmente un array (para un simple ejercicio es suficiente así):
// Asientos(AsientosTotales) es declarado y dimensionado al número de
// asientos totales (0 a 20). Y de tipo buleano como ya te han dicho va perfecto para ejercicios.
Si (AsientosLibres > 0)
mensaje = "Elija su asiento entre el 0 y el 20 (algunos pueden estar ya ocupados)."
ocupado = ""
Hacer
AsientoElegido = EleccionDelUsuario(mensaje + ocupado, 0, 20)
ocupado = "El asiento " + Asientoelegido.ToString + " ya está ocupado."
Repetir mientras (Asientos(AsientoElegido) = TRUE)
Asientos(AsientoElegido) = TRUE
AsientosLibres -=1
Si (AsientosLibres = 0)
mensaje "Vuelo lleno..."
fin si
Sino
mensaje "Lo sentimos no quedan plazas en este vuelo. Elija otra fecha de vuelo u otro destino..."
fin si
Esto te puede dar alguna idea, pero tendrás que acomodarlo a tu código.
Acostúmbrate a poner algo de código o como mínimo un mensaje más descriptivo (ahora mismo es tan genérico que acepta cualquier cosa)... sino lo más probable es que ni recibas respuesta.