#include "stdio.h"
//Declaration of Function Pointer
int (*funcptr)(int,int); // This is a Global Variable
//Declaration of Functions
int add(int,int);
int sub(int,int);
int mul(int,int);
int (*register_functionpointer(int cmd))(int num1,int num2);//Note this is a function's declaration not a pointer
int main()
{
int(*fptr)(int,int) = NULL;
int cmd,n1,n2,result;
printf("enter the first number\n");
scanf("%d",&n1);
printf("\nenter the second number\n");
scanf("%d",&n2);
printf("\nEnter Command : 1 for Addition,2 for subtraction and 3 for multiplication,4 to exit\n");
scanf("%d",&cmd);
if(cmd == 4)
printf("\nGood Byee....Exit\n");
fptr=register_functionpointer(
result = fptr(n1,n2);
printf("The result is %d\n",result);
return 0;
}
int (*register_functionpointer(int cmd))(int num1,int num2)
{
switch(cmd)
{
case 1:funcptr = add ;
break;
case 2:funcptr = sub ;
break;
case 3: funcptr = mul;
break;
default:
printf("\ninvalid input\n");
}
return funcptr;
}
int add( int n1,int n2)
{
return(n1+n2);
}
int mul( int n1,int n2)
{
return(n1*n2);
}
int sub( int n1, int n2)
{
if(n1 > n2 )
return(n1-n2);
if(n2 >n1 )
return(n2-n1);
if(n1 == n2)
{
printf("\nBoth numbers are same\n");
return 0;
}
}
No comments:
Post a Comment