#include <stdio.h>
void state_init() { printf("Init"); }
void state_load() { printf("Load"); }
void state_execute() { printf("Execute"); }
void state_exit() { printf("Exit"); }
void (*fn_ptr_arr[4])(void) = {state_init, state_load, state_execute, state_exit};
void run_state_sequence(int start) {
// Implement using function pointer array
int idx;
for(int i = start; i < (3 + start); i++ )
{
if(i > 3)
{
idx = i-4;
}
else
{
idx = i;
}
fn_ptr_arr[idx]();
printf("\n");
}
}
int main() {
int start;
scanf("%d", &start);
run_state_sequence(start);
return 0;
}
Expected Output
Init Load Execute