#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
/*
It looks like these functions are in some sort of array
And on the basis of input start, the contents of the array are printed
If state = [init, load, execute, exit]
func(state)
for(i = 0; i < state_index; i++)
state[i]
if(i == state_index) i = 0;
*/
void run_state_sequence(int start) {
// Implement using function pointer array
void (*stateArray[4])(void) = {state_init, state_load, state_execute, state_exit};
for(int i = 0; i < 3; i++)
{
stateArray[(start + i) % 4](); // Wrapping around using Modulo
printf("\n");
}
}
int main() {
int start;
scanf("%d", &start);
run_state_sequence(start);
return 0;
}
Input
0
Expected Output
Init Load Execute