#include <stdio.h>
void exchange(float *x, float *y);
int evaluate(int x, int (*poly)(int));
int polynomial(int x)
{
return x * x + 2 * x + 1;
}
void exchange(float *x, float *y)
{
float hold = *x;
*x = *y;
*y = hold;
}
int evaluate(int x, int (*poly)(int))
{
return poly(x);
}
int main(void)
{
float x = 10.5;
float y = 20.5;
exchange(&x, &y);
printf("\nAfter exchange:\n");
int value = 5;
printf("\nPolynomial result = %d\n", evaluate(value, polynomial));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIGV4Y2hhbmdlKGZsb2F0ICp4LCBmbG9hdCAqeSk7CmludCBldmFsdWF0ZShpbnQgeCwgaW50ICgqcG9seSkoaW50KSk7CgppbnQgcG9seW5vbWlhbChpbnQgeCkKewogICAgcmV0dXJuIHggKiB4ICsgMiAqIHggKyAxOwp9Cgp2b2lkIGV4Y2hhbmdlKGZsb2F0ICp4LCBmbG9hdCAqeSkKewogICAgZmxvYXQgaG9sZCA9ICp4OwoKICAgICp4ID0gKnk7CiAgICAqeSA9IGhvbGQ7Cn0KCmludCBldmFsdWF0ZShpbnQgeCwgaW50ICgqcG9seSkoaW50KSkKewogICAgcmV0dXJuIHBvbHkoeCk7Cn0KCmludCBtYWluKHZvaWQpCnsKICAgIGZsb2F0IHggPSAxMC41OwogICAgZmxvYXQgeSA9IDIwLjU7CgogICAgcHJpbnRmKCJCZWZvcmUgZXhjaGFuZ2U6XG4iKTsKICAgIHByaW50ZigieCA9ICUuMmZcbiIsIHgpOwogICAgcHJpbnRmKCJ5ID0gJS4yZlxuIiwgeSk7CgogICAgZXhjaGFuZ2UoJngsICZ5KTsKCiAgICBwcmludGYoIlxuQWZ0ZXIgZXhjaGFuZ2U6XG4iKTsKICAgIHByaW50ZigieCA9ICUuMmZcbiIsIHgpOwogICAgcHJpbnRmKCJ5ID0gJS4yZlxuIiwgeSk7CgogICAgaW50IHZhbHVlID0gNTsKCiAgICBwcmludGYoIlxuUG9seW5vbWlhbCByZXN1bHQgPSAlZFxuIiwKICAgICAgICAgICBldmFsdWF0ZSh2YWx1ZSwgcG9seW5vbWlhbCkpOwoKICAgIHJldHVybiAwOwp9