#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;
}
Expected Output
Init Load Execute