#include <stdio.h>

#define MAX 5

inc(int x){  return x+1;  }

twice(int x){return 2*x;  }

map(int (*f)(),int * a,int n)
{  int i;
   for(i=0;i<n;i++)
    a[i] = f(a[i]);
}

show(int * a,int n)
{  int i;
   for(i=0;i<n;i++)
    printf("%d ",a[i]);
   printf("\n");
}

main()
{  int a[MAX];
   int i;
   for(i=0;i<MAX;i++)
    a[i] = i;
   show(a,5);
   map(inc,a,5);
   show(a,5);
   map(twice,a,5);
   show(a,5);
}
