All submissions

State Machine Using Function Pointers

Code

// #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
// }

// int main() {
//     int start;
//     scanf("%d", &start);
//     run_state_sequence(start);
//     return 0;
// }


#include <stdio.h>

void state_init(){printf("Init");}
void state_load(){printf("Load");}
void state_execute() {printf("Execute");}
void state_exit() {printf("Exit");}

void run_state_sequence(int start){

    void (*function_pointer[])()={state_init, state_load, state_execute, state_exit};

    for(int i=0;i<3;i++){
        int index =(start +i)%4;
        function_pointer[index]();
        if(i<2)
            printf("\n");
    }
}

int main(){
    int start;
    scanf("%d",&start);
    run_state_sequence(start);
    return 0;
}

Solving Approach

 

 

 

Loading...

Input

0

Expected Output

Init Load Execute