#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) {
// Implement using function pointer array
char i ;
int copy ;
void (*func[4])() = {state_init, state_load, state_execute, state_exit};
for(i = 0; i<3 ; i++){
copy = (start+i) % 4;
func[copy]();
putchar('\n');
}
}
int main() {
int start;
scanf("%d", &start);
run_state_sequence(start);
return 0;
}
declare void (*func[4])() = {state_init, state_load, state_execute, state_exit};
and wrap around using (start + i ) % 4; // as 4 elements
Input
0
Expected Output
Init Load Execute