#include <stdio.h>
void state_init() { printf("Init"); }
void state_load() { printf("Load"); }
void state_execute() { printf("Execute"); }
void state_exit() { printf("Exit"); }
// Your logic here
void run_state_sequence(int start) {
void (*func[4])(void)={state_init, state_load, state_execute, state_exit};
if (start==0){
func[0]();printf("\n");
func[1]();printf("\n");
func[2]();printf("\n");
}
else if (start ==1){
func[1]();printf("\n");
func[2]();printf("\n");
func[3]();printf("\n");
}
else if(start==2){
func[2]();printf("\n");
func[3]();printf("\n");
func[0]();printf("\n");
}
else{
func[3]();printf("\n");
func[0]();printf("\n");
func[1]();printf("\n");
}
}
int main() {
int start;
scanf("%d", &start);
run_state_sequence(start);
return 0;
} void (*func[4])(void)={a,c,b,b}//remember this
and
to call: func[1](); () is important