/* A sample program demonstrating passing a function as an argument */ /* declare type name int2void as the type of function that takes an integer array argument and returns a void */ typedef void int2void (int []); #include void largest (int A[]) { int i; int large; large = A[1]; for (i = 1; i <= A[0]; ++i) if (large < A[i]) large = A[i]; printf ("Largest value = %d\n", large); } void smallest (int A[]) { int i; int small; small = A[1]; for (i = 1; i <= A[0]; ++i) if (small > A[i]) small = A[i]; printf ("Smallest value = %d\n", small); } void funct (int A[], int2void *f) { f(A); } int main (void) { int A[6] = {5, 1, 2, 3, 4, 5}; funct (A, largest); funct (A, smallest); printf ("\n"); return 0; }