Function Pointer Dispatch Table

Code

#include <stdio.h>

int add(int a, int b) {return a+b;}
int sub(int a, int b) {return a-b;}
int mul(int a, int b) {return a*b;}
int divide(int a, int b) {return a /b;}

int execute_command(int a, int b, int cmd){
	// tao mang con tro ham
	// moi phan tu la mot con tro toro den signature
	int(*operations[4])(int,int) = {add, sub, mul, divide};
	
	// Goi ham tuong ung voi cmd
	return operations[cmd](a,b);
}
int main(){
	int a, b, cmd;
	scanf("%d %d %d", &a, &b, &cmd);
	int result = execute_command(a, b, cmd);
	
	printf("%d", result);
	
	return 0;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

10 5 0

Expected Output

15