#include <stdio.h> void state_init() { printf("Init\n"); } void state_load() { printf("Load\n"); } void state_execute() { printf("Execute\n"); } void state_exit() { printf("Exit\n"); } typedef enum { STATE1 = 0 , STATE2, STATE3, STATE4 }e_states; e_states states_u = STATE1; void (*fun)(); // Your logic here void run_state_sequence(int start) { int count = 0; states_u = e_states(start); while (count < 3) { switch (states_u) { case STATE1 : fun = &state_init; fun(); count++; states_u = STATE2; break; case STATE2: fun = &state_load; fun(); count++; states_u = STATE3; break; case STATE3: fun = &state_execute; fun(); count++; states_u = STATE4; break; case STATE4: fun = &state_exit; fun(); count++; states_u = STATE1; break; } } } int main() { int start; scanf("%d", &start); run_state_sequence(start); return 0; }
Test Cases
Test Results
Input
0
Expected Output
Init Load Execute