// Estados de un viaje con enum y switch.
#include <stdio.h>

enum trip_state { TRIP_WAITING, TRIP_ON_ROUTE, TRIP_FINISHED };

const char *state_name(enum trip_state state) {
    switch (state) {
    case TRIP_WAITING:
        return "esperando";
    case TRIP_ON_ROUTE:
        return "en ruta";
    case TRIP_FINISHED:
        return "terminado";
    }
    return "desconocido";
}

enum trip_state next_state(enum trip_state state) {
    if (state == TRIP_WAITING) {
        return TRIP_ON_ROUTE;
    }
    return TRIP_FINISHED;
}

int main(void) {
    enum trip_state state = TRIP_WAITING;
    printf("%s\n", state_name(state));

    state = next_state(state);
    printf("%s\n", state_name(state));

    state = next_state(state);
    printf("%s\n", state_name(state));
    return 0;
}
