Write a program to show use of an array of function pointer.
#include<stdio.h> int sum(int,int); int mul(int,int); int div(int,int); int sub(int,int); int mod(int,int); int main() { int x,y,op,ans,i; int (*fp[5])(int,int); printf("Enter x value = "); scanf("%d",&x); printf("Enter y value = "); scanf("%d",&y); fp[0] = sum; fp[1] = sub; fp[2] = mul; fp[3] = div; fp[4] = mod; /* for(i = 0;i < 5;i++) { printf("%d\n",(*fp[i])(x,y)); } */ printf("Enter Choice\n1] Addition\n2] Subtraction\n3] Multiplication\n4] Division\n5] Modulus\n"); scanf("%d",&op); if(op < 1 || op > 5) { printf("Invalid choice\n"); return 0; } ans = (*fp[op-1])(x,y); printf("ans = %d\n",ans); return 0; } int sum(int x,int y) { printf("%s ",__func__); return x + y; } int mul(int x,int y) { printf("%s ",__func__); return x * y; } int div(int x,int y) { printf("%s ",__func__); return x/y; } int sub(int x,int y) { printf("%s ",__func__); return x - y; } int mod(int x,int y) { printf("%s ",__func__); return x % y; }
Output
Enter x value = 10 Enter y value = 5 Enter Choice 1] Addition 2] Subtraction 3] Multiplication 4] Division 5] Modulus 3 mul ans = 50
Enter x value = 45 Enter y value = 34 Enter Choice 1] Addition 2] Subtraction 3] Multiplication 4] Division 5] Modulus 7 Invalid choice