State Machine Using Function Pointers

Code

#include <stdio.h>

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

void run_state_sequence(int start){
	// Tao mang con tro ham
	void (*state[4]) (void) = {
	state_init,
	state_load,
	state_execute,
	state_exit
	
	};
// Thuc thi 3 trang thai lien tiep tu vi tri start
for(int i =0; i<3; i++){
	int current = (start+i) % 4;
	state[current]();
}
}
int main(){
	int start;
	scanf("%d", &start);
	run_state_sequence(start);
	return 0;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

0

Expected Output

Init Load Execute