#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) {
const size_t func_ptr_arr_size = 4;
const size_t num_of_ites = 3;
// declare func ptr array
void (*func_ptr_arr[func_ptr_arr_size])() = {state_init,
state_load,
state_execute,
state_exit};
int idx = start;
for (int i = 0; i < num_of_ites; i++)
{
idx = (start + i) % func_ptr_arr_size; // wrap around the array
func_ptr_arr[idx]();
if (i < num_of_ites - 1)
{
printf("\n");
}
}
}
int main() {
int start;
scanf("%d", &start);
run_state_sequence(start);
return 0;
}
Input
0
Expected Output
Init Load Execute