[prev] 77 [next]

Exercise 10: Understanding Function Pointers

What will the following code do?

int mystery(int a, int b, int (*fn)(int,int)) {
    return (fn(a,b)); 
}
int gcd(int a, int b) {
  int c;
  while ( a != 0 ) {
     c = a; 
     a = b%a;  
     b = c;
  }
  return b;
}
int sumofsquares(int x, int y) { 
    return (x*x + y*y);
}
int sum(int x, int y) { 
    return (x + y);
}
int main(){
    int n = mystery(8,12,sum);
    printf("%d \n", n);
    printf("%d \n", mystery(8,12,gcd));
    printf("%d \n", mystery(8,12,sumofsquares));
    return 0;
}